Expression Language
JSP 스크립트 태그를 제거하기 위해 나온 개념.
ex) : ${parameter.key(name)}
목적 : 저장 객체의 출력을 단순화
<%= request.getParameter("name")%> -> ${param.name}
<%= userDTO user = (UserDTO)request.getAttribute("user")%>
-> ${user}
${pageScope}
${requestScope}
${sessionScope}
${applicationScope}
${param}
${cookie}
${header}
${pageContext}
${initParam}
Java Standard Tag Library
view(jsp)에서 스트립팅 없이 조건, 반복등을 처리하기 위함.
jsp에서 자주 사용하는 기능을 구현해 놓은 tag library 모음
JSTL 또한 EL과 연계하여 사용이 가능
JSTL은 JSP 내장 객체에 쉽게 접근할수 있음
<c:set> : 변수에 값을 할당
- set으로 객체 프로퍼티값을 설정할때는 setter의 리턴타입이 반드시 void
<c:out> : 값 출력(무조건 문자열 출력)
<c:if> : 일반적 if(else if, else x)
- jstl 연산자 표현
+, *
jstl 연산부호
div : /
or : ||
and : \&\&
eq : ==
ne : !=
ge : <
lt : >
ge : <=
le : >=
<c:forEach>: 반복문.
- <c:forEach var ="변수명" items="목록 데이터" begin="시작 인덱스 end ="종료인덱스">
컨텐츠
items에 들어올수 있는 데이터 타입
- 배열
- 컬렉션
- iterator
- Map
- 콤마로 나열된 문자열들(JSON)
<c:choose> : swich와 동일
<c:when> : else if / case문
<c:otherwise> default
<c:url>: url 생성
<c:redirect> : redirect 처리
Core <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
XML <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
I18N <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
Database <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
Functions <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
prefix는 꼭 c, fmt 등으로 지정해야하는 것은 아니지만 JSTL에서 권장하는 접두사.
<c:if test="조건식" var ="변수명" scope = "page|request|session|application">
</c:if>
c:out : 어떤값을 넣어도 문자열을 출력해야할때
태그 규칙을 지키기 위해
js와 jstl중 먼저 동작하는것은?
jstl