JSTL이란 JSP 개발을 단순화하기 위한 표준태그 라이브러리이며 JSTL + EL의 조합을 의미한다. 또한 빠른 개발 ,코드 재사용성, JSP의 스크립트릿을 최소화해서 코드의 난독을 해결할 수 있다는 특징을 가지고 있다.
JSTL과 EL에 대해 알아보도록 하자.
태그명 | 설명 |
---|---|
<c:set> | 변수명에 값을 할당 |
<c:out> | 값을 출력 |
<c:if> | 조건식에 해당하는 블럭과 사용될 scope설정 |
<c:choose> | 다른 언어의 switch와 비슷 |
<c:when> | switch문의 case에 해당 |
<c:otherwise> | switch문의 default에 해당 |
<c:forEach> | 다른언어의 loop문 items 속성에 배열을 할당할 수 있음 |
<c:forTokens | 구분자로 구분된 문자열을 처리 |
<c:choose>
<c:when test="${empty param.name}">
<form>
이름 : <input type="text" name="name" />
<input type="submit">
</form>
</c:when>
<c:when test="${param.name == 'admin'}">
와우 관리자군요.
</c:when>
<c:otherwise>
어서오세요 회원<c:out value="${param.name}"/>
</c:otherwise>
</c:choose>
true
를 반환한다.admin
이라면 와우 관리자군요.
를 반환한다.** 반복문 forEach **<br/>
연습1 :
<c:forEach var="i" begin="1" end="10" step="2">
${i}
</c:forEach>
<br/>
연습2(구구단 3) : <br/>
<c:forEach var="i" begin="1" end="9">
3 * ${i} = ${3 * i }<br/>
</c:forEach>
EL : jsp 표현식을 대신해 속성 값을 쉽게 출력하기 위한 언어이다. ( <%= %> 를 대체)
사용자가 전송한 user명 출력<br/>
1-1) jsp servlet 사용 : <% out.print(request.getParameter("user")); %>
<br/>
1-2) jsp 표현식 사용 : <%=request.getParameter("user") %>
<br/>
2) EL 사용 : ${param.user }
객체명 | 설명 |
---|---|
${pageScope} | page Scope에 접근하기 위한 객체 |
${reqeustScope} | request Scope에 접근하기 위한 객체 |
${sessionScope} | session Scope에 접근하기 위한 객체 |
${applicationScope} | application Scope에 접근하기 위한 객체 |
${param} | 파라미터 값을 가져오기 위한 객체 |
${header} | 헤더 값을 가져오기 위한 객체 |
${cookie} | 쿠키 값을 가져오기 위한 객체 |
${initParam} | JSP 초기 파라미터를 가져오기 위한 객체 |
${pageContext} | pageContext 객체에 접근하기 위한 객체 |
<%
if(request.getParameter("user") == null){
%>
<jsp:forward page="el_1.html"/>
<%
}
%>
사용자가 전송한 user명 출력<br/>
1-1) jsp servlet 사용 : <% out.print(request.getParameter("user")); %>
<br/>
1-2) jsp 표현식 사용 : <%=request.getParameter("user") %>
<br/>
2) EL 사용 : ${param.user }
위의 방법 3가지들을 비교하면 EL을 사용함으로써 간편하게 값을 출력한 것을 알 수 있다.