EL표현식 : request, pageContext, session, application 저장된 값을 표현식을 통해 출력
<%
int kor = 90;
int eng = 80;
int tot = kor + eng;
String name = "원더우먼";
pageContext.setAttribute("name", "홍길동");
request.setAttribute("name", "배트맨");
session.setAttribute("name", "슈퍼맨");
application.setAttribute("name", "뽀로로");
%>
<div> 합: <%=tot%> </div> <p>
이름1 : <%=pageContext.getAttribute("name")%> <p>
이름2 : <%=request.getAttribute("name")%> <p>
이름3 : <%=session.getAttribute("name")%> <p>
이름4 : <%=application.getAttribute("name")%>
<!-- EL 표현식 : 위의 4개 영역의 값을 출력할때 간단히 출력 할 수 있는 표현식 -->
이름1 : ${pageScope.name} <p>
이름2 : ${requestScope.name}<p>
이름3 : ${sessionScope.name}<p>
이름4 : ${applicationScope.name}
EL 표현식은 Scope를 생략 할 수 있다.
Scope를 생략시 동일한 이름이 존재한다면 pageContext > request > session > application순 젤 먼저것만 출력
// 작업시 내장객체의 영역에 동일한 이름의 속성을 만들지 않는다.
이름1 : ${name} <p>
이름2 : ${name} <p>
이름3 : ${name} <p>
이름4 : ${name}
<%
String hakbun = "p1234";
int eng = 99;
// 내장객체영역이 아닌 스크립트릿에 존재하는 변수는 EL표현식으로 출력이 안됨
// 단, 하고 싶다면 >> setAttribute를 통해서 작업 해야한다.
request.setAttribute("hakbun", hakbun);
request.setAttribute("mat", mat);
%>
학번 : ${hakbun} <p>
영어 : ${eng}
EL 표현식은 비교연산자를 영어로도 쓸 수 있음
${kor > eng } <p> ${kor gt eng } <p> ${kor < eng } <p> ${kor lt eng } <p> ${kor == eng } <p> ${kor eq eng } <p> ${kor != eng } <p> ${kor ne eng } <p> ${true && false }<p> ${true and false}<p> ${true || false }<p> ${true or false }<p> <% request.setAttribute("mat",""); %> ${mat == null } <p> ${sci == null } <p> null은 값이 아예 비워져있는것까지 확인 할 수 있는데에 비해 empty는 그렇지 않다. ${empty mat } <p> ${empty sci } <p>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set value="<%=eng%>" var="eng" />
<c:set value="홍길동" var="name" />
<c:set value="1" var="a" />
<hr>
이름 : ${name}<p>
국어 : ${kor} <p>
영어 : ${eng} <p>
<hr>
변수 a : ${a}
<hr>
<c:set value="${a+1}" var="a"/>
변수 a : ${a} <p>
=======================================================<p>
<!-- set : 변수 생성 (내장 객체) -->
<!-- out : 내장 객체 변수를 출력할때 사용 -->
국어 : <c:out value="${kor}"/><p>
영어 : ${eng}<p>
과학 : <c:out value="${sci}"/><p>
과학 : <c:out value="${sci}" default="존재하지 않음"/>
core 태그의 if문 (core 태그에는 else가 없기 때문에 false 부분 처리도 해줘야함)
<c:set var="kor" value="80"/>
<c:if test="${kor >= 60}">
국어점수는 합격입니다.
</c:if>
<c:if test="${kor < 60}">
국어점수는 불합격입니다.
</c:if>
core 태그에서 for문을 이용해 생년월일 선택하는 select
<select>
<c:forEach var="i" begin="1900" end="2023">
<option> ${i} </option>
</c:forEach>
</select>
<select>
<c:forEach var="i" begin="0" end="123">
<option> ${2023-i} </option>
</c:forEach>
</select>
향상된 for문 이용관련
String[] name = {"배트맨","홍길동","보로로","헐크","원더우먼"};
<c:forEach var="i" begin="0" end="5">
${name[i]} <br>
</c:forEach>
<p>==========================<p>
<c:forEach items="${name}" var="nam">
${nam} <br>
</c:forEach>
varStatus 값을 줘서 쓸 수 있는 속성
<c:forEach var="i" begin="0" end="5" step="1" varStatus="pkc">
${pkc.current} : ${pkc.index} : ${pkc.count} : ${name[i]} : ${pkc.begin} : ${pkc.end} : ${pkc.step} <br>
</c:forEach>
<p>===================<p>
<c:forEach items="${name}" var="nam" varStatus="pkc">
${pkc.current} : ${pkc.index} : ${pkc.count} : ${nam} : ${pkc.first} : ${pkc.last} <br>
</c:forEach>
여러개 중에 조건에 맞는 하나의 내용을 실행
<c:choose>
<c:when test="${food == 0}">
짜장면을 주문 하셨습니다.
</c:when>
<c:when test="${food == 1}">
짬뽕을 주문 하셨습니다.
</c:when>
<c:when test="${food == 2}">
탕수육을 주문 하셨습니다.
</c:when>
<c:when test="${food == 3}">
팔보채를 주문 하셨습니다.
</c:when>
<c:when test="${food == 4}">
라조기를 주문 하셨습니다.
</c:when>
<c:otherwise>
주문이 잘못 됐습니다!!!
</c:otherwise>
</c:choose>
list에 page처리하는 코드
<td colspan="3" align="center">
<!-- 사용자가 링크 할 수 있는 페이지를 출력 -->
<!-- 10 페이지 왼쪽 -->
<c:if test="${pstart != 1}">
<a href="list?page=${pstart-1}"> << </a>
</c:if>
<c:if test="${pstart == 1}">
<<
</c:if>
<!-- 1페이지 왼쪽 -->
<c:if test="${page != 1 }">
<a href="list?page=${page-1}"> < </a>
</c:if>
<c:if test="${page == 1 }">
<
</c:if>
<c:forEach var="i" begin="${pstart}" end="${pend}">
<c:if test="${page != i}">
<a href="list?page=${i}">${i}</a>
</c:if>
<c:if test="${page == i}">
<span style="color:red;">${i}</span>
</c:if>
</c:forEach>
<!-- 1페이지 오른쪽 -->
<c:if test="${page != chong}">
<a href="list?page=${page+1}"> > </a>
</c:if>
<c:if test="${page == chong}">
>
</c:if>
<!-- 10페이지 오른쪽 -->
<c:if test="${pend != chong}">
<a href="list?page=${page+10}"> >> </a>
</c:if>
<c:if test="${pend == chong}">
>>
</c:if>
</td>
</tr>