JSTL 설정
pom.xml에 dependency 추가
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
JSTL은 기본적으로 1.2파일이 라이브러리로 있다. 태그들은 종류가 많은데
core, functions, sql, xml, fmt다섯 종류가 있고,
일반적으로 core를 가장 많이쓴다 그리고 이후에 접두사를 붙혀줘야한다.
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
JSTL을 쓰게되면 장점은 코드의 가독성이 좋아지고 번거롭게 스크립틀릿이나 표현식을
쓰지 않아도 된다.
EL (Expression Language) 이란
문법 : ${식}한방이면 오케이입니다 !
'식' 안에는 어떤것들이 들어가는가 ?
var(변수), 연산자
일반 JSP의 조건문이나 반복문
<%for(int i = 1 ; i < 5; i++){
if(i%2==0){%>
<font size ="<%=i %>">야호~</font><br>
<% }
}%>
JSTL, EL 의 조건문 반복문
<c:forEach var="i" begin="1" end="5" step="1">
<c:if test="${i%2==0}">
<font size="${i}">야호</font><br>
</c:if>
</c:forEach>
//참고로 else문은 없다
뭐 비슷하다. 둘 다 동일한 결과를 낸다. c: 이렇게 접두사를 붙혀줘서 사용해야하고
참고로 c: ctrl + enter를 쳐보면 core에 있는 태그요소들이 다 나온다.
근데 크게 가독성이 좋아지는지는 잘 모르겠다.
그래도 반복문은 코딩을 모르는사람이 봐도 설명해주면 이해 가능할듯 ?
변수 선언
<c:set var="a" value="10" />
var이기 때문에 정해진 타입은 없다. 문자열이라 생각하면됨.
switch/case문은
<c:choose >
<c:when test="${a%2==0 }">
짝수입니다
</c:when>
<c:when test="${a%2!=0 }">
홀수입니다
</c:when>
<c:otherwise>
</c:otherwise>
이렇게 표현 가능하다.
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
이렇게 선언만 해주면 core에 있는 태그들 사용 가능하다.(core를 가장 많이 씀)
원래 jsp라면
List vo = (List)request.getAttribute("list", list);
이렇게 선언해주어야 request객체를 가져올 수 있지만 JSTL은 그렇지않다
이유는 ${식} 자체가 getAttribute이기 때문에 업캐스팅을 해줄 필요가 없다.
게시판 목록을 불러오는 코드
<c:forEach var="vo" items="${list}">
<tr>
<td>${vo.idx}</td>
<td><a href="/myapp/boardContent.do?idx=${vo.idx}">${vo.title}</a></td>
<td>${vo.writer}</td>
<td>${vo.indate}</td>
<td>${vo.count}</td>
</tr>
</c:forEach>
이렇게 간단하게 가능하다 . <%=vo.getIdx()%> 이렇게 하지 않아도 된다.