${ 표현식 }
${scope에 저장된 키값}
: 화면단에서 자바코드가 없어지므로 매우 편리함
//servlet
request.setAttribute("userid", "홍길동");
//jsp tag
<% String userid = (String)request.getAttribute("userid"); %>
<%= userid %>
//EL tag
${userid}
=> NullPointException 발생하지 않는 장점
//scope에 저장하지 않은 경우
jsp tag: null
EL tag: (빈칸)
${empty 값or변수}
//jsp tag
<%
String userid1 = (String)request.getAttribute("userid");
String userid2 = (String)session.getAttribute("userid");
String userid3 = (String)application.getAttribute("userid");
%>
<%= userid1 %>
<%= userid2 %>
<%= userid3 %>
//EL tag - 기본값: request scope
//다른 스코프에서 가져오려면 명시해주기
${key}
${requestScope.key}
${sessionScope.key}
${applicationScope.key}
${key.변수명}
//jsp tag
<% LoginDTO dto = (LoginDTO)request.getAttribute("login"); %>
<%= dto.getPasswd() %>
//EL tag
${login.passwd}
${key[idx].변수명}
//jsp tag
<% List<LoginDTO> list = (List<LoginDTO>)request.getAttribute("list"); %>
<%= list.get(0).getUserid() %><%= list.get(0).getPasswd() %>
//EL tag
${list[0].userid} ${list[0].passwd}
💡 사용방법
가. jar파일 다운로드, 압축해제
- https://tomcat.apache.org/taglibs/standard/
Standard 1.1 > binaries- 파일명: jakarta-taglibs-standard-1.1.2.zip
- 저장경로 C:\servlet_study
나. 2개의 jar파일 WEB_INF/lib에 빌드패스
- C:\servlet_study\jakarta-taglibs-standard-1.1.2\lib
- jstl.jar
- standard.jar다. standard-examples.war 파일을 이클립스에서 import
- Import > WAR file
라. import한 프로젝트에서 index.html 실행
- http://localhost:8090/standard-examples/index.html
샘플참고해서 JSTL 사용!
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
//out : 브라우저에 값 출력
<c:out value="${scope에 저장된 key값}" />
//set : 변수사용 ***
<c:set var="변수명" value="${scope에 저장된 key값}" scope="request|session|application" />
${변수명} //출력
//조건문
//1) 단일 if문
<c:if test="${조건식'}">
문장
</c>
<c:if test="${조건식2'}">
문장2
</c>
//2) choose문
<c:choose>
<c:when test="${userid == '홍길동'}">
홍길동입니다.
</c:when>
<c:otherwise>
유관순입니다.
</c:otherwise>
</c:choose>
//반복문
//1) range
<c:forEach var="변수명" begin="시작값" end="마지막값" step="값설정가능">
${변수명} 문장
</c:forEach>
//2) simple - scope에 list저장한 형태 ***
<c:forEach var="dto" items="${list}">
${dto}<br>
${dto.userid} ${dto.passwd}<br>
</c:forEach>
//3) Iteration Status - 반복되는 횟수 값을 얻어오기
<c:forEach var="" items="${}" varStatus="status">
${status.index}
index
count
current.lastName
current.firstName
first
last
begin
end
step
//상대경로
<a href=" <c:url value='경로'/> "/>
//절대경로 - /만 쓰면 context명 알아서 추가됨, 편리! ***
<a href=" <c:url value='/경로'/> "/>