(c:else)문 없음
속성은 test만 존재함.
EL에서 모든 비교는 == 또는 eq / != 또는 ne 사용
EL에서 문자열은 ''(홑따옴표)로 표현
1) test의 속성값은 무조건 EL 구문으로 작성해야 함.
2) test의 속성값은 true 또는 false가 나오는 조건식이어야 함.
3) test의 속성값을 작성하는 ""내부에는 앞뒤 공백이 존재해서는 안됨!
test = " {money == 50000}" (O)
<!-- jsp -->
<a href="condition">JSTL을 이용한 조건문(if / choose, when, otherwise)</a>
// controller
//최상위 주소 기준!
@WebServlet("/jstl/condition")
public class JSTLConditionController extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("name", "홍길동");
req.setAttribute("money", 50000);
req.getRequestDispatcher("/WEB-INF/views/jstl/condition.jsp").forward(req, resp);
}
}
<!-- 이동 할 jsp -->
request에 세팅된 name : ${name} <%--홍길동--%>
<br>
request에 세팅된 money : ${money} <%-- 50000 --%>
<br>
<c:if test="${money == 50000 }">
<h3 style = "color : blue">돈이 5만원 있습니다.</h3>
</c:if>
<c:if test ="${ name eq '홍길동' }">
<h3>이름이 일치합니다.</h3>
</c:if>
<c:if test ="${ name ne '홍길동' }">
<h3>이름이 일치하지 않습니다.</h3>
</c:if>
[ 범위 ]
lt(little) : < 미만
gt(greater) : > 초과
le (little or equal) : <= 이하
ge (greater or equal) : >= 이상
index.html -> controller에서 doget 이용 후
<!-- 이동 한 jsp>
<%-- 관리자 이동하는 조건에 자주 쓰임 --%>
<c:when test = "${param.val gt 100}">
100 초과
</c:when>
<c:when test = "${param.val < 100}">
100 미만
</c:when>
<c:otherwise>
100과 같다
</c:otherwise>
</c:choose>
varStatus="변수명"
-> c:forEach 구문 내에서 "변수명"을 통해 원하는 값을 얻을 수 있다.
★ varStatus에서 제공되는 값
<!-- 마지막으로 출력될 jsp -->
<h3>일반 for문 형식으로 사용하기</h3>
<c:forEach var = "i" begin ="1" end = "6" step = "1">
<%-- 1부터 6까지 1씩 증가 반복문 --%>
<h${i}> 현재 i값 값 : ${i} </h${i}>
</c:forEach>
1) 현재 인덱스 값을 반환
index : ${vs.index}
2) 몇 번째 반복인지 출력
count : ${vs.count}
3) 현재 접근한 객체
current : ${vs.current}
4) 첫 번째 요소 확인 (t/f)
first : ${vs.fisrt}
5) 마지막 요소 확인 (t/f)
last : ${vs.last}
<!-- 마지막에 출력될 jsp -->
<c:forEach var = "book" items = "${bookList}" varStatus = "vs">
<%-- varStatus :: 변수명 --%>
<p>
1) 현재 인덱스 값을 반환 <br>
index : ${vs.index} <br>
<br><br>
2) 몇 번째 반복인지 출력 <br>
count : ${vs.count} <br>
3) 현재 접근한 객체 <br>
current : ${vs.current}<br>
<c:if test = "${vs.first}">
4) 첫 번째 요소 확인 (t/f)
첫 번째 요소 입니다.
</c:if>
<c:if test = "${vs.last}">
5) 마지막 요소 확인 (t/f)
마지막 요소 입니다.
</c:if>
</p>
</c:forEach>
있어야 하는 것!
=> lib -> ojdbc
순서) index.html -> (dto) -> controller -> Service -> dao -> db -> dao -> service -> controller -> 새 jsp(jstl)
1) choose 안에서 주석 쓸 때, <!-- -- > 사용하면 안됨
<%-- -- > 를 이용해야 함!
2) queryString
=> 주소에 작성된 파라미터 문자열
3) class.getResource()
클래스 기준으로 상대적인 위치의 리소스를 가져올 수 있다.