JSTL
JSP Standard Tag Library. 즉, 자바서버페이지 표준 태그 라이브러리이다.
JSP는 HTML에 자바코드가 섞이지 않도록 유용한 표현을 지원하고 있다.
바로 ①EL(Expression Language), ②JSTL이다.
① EL은 ${}로 표현한다.
활용 전 :
String a = request.getParameter("id")
활용 후 :
id = ${param.id} <br>
>>> 활용 전 id는 null값이 나오지만, 사용 후 id값은 null이 아닌 빈 문자열이 된다.
* 배열생성 또한 가능하다.
${c = [1,2,3,4,5]} <!-- 배열 c를 생성 후 전체를 출력해줌. -->
${c[0]} <!-- c[0]을 출력함 -->
이때, 선언만 하려면 새미콜론(;)을 붙이면 된다.
${c[0]} <!-- c[0]을 출력함 -->
이때, 선언만 하려면 새미콜론(;)을 붙이면 된다.
${c = [1,2,3,4,5]; ''}
>>> 새미콜론(;)은 만든 배열의 이후만 마지막에 출력하라는 연산자. 즉 따옴표 내용만 출력.
[EL의 내장객체들]
pageContext | pageContext 객체 참조 |
pageScope | page 영역 참조 |
requestScope | request 영역 참조 |
sessionScope | session 영역 참조 |
applicationScope | application 영역 참조 |
param | 요청 파라미터의 값을 String으로, request.getParameter()와 동일 |
paramValue | 요청 파라미터의 값을 String[]으로, request.getParameterValues()의 결과와 동일 |
header | 요청 header 정보, request.getHeader()의 결과와 동일 |
headerValues | 요청 header 정보를 배열, request.getHeaders() |
cookie | 쿠키 참조, request.getCookies()결과와 동일 |
initParam | 컨텍스트의 초기화 파라미터, application.getInitParameter(이름)의 결과와 동일하다. |
※ scope는 생략이 가능하다. ${sessionScope.id}를 ${id}라고 표현할 수 있다.
생략하면 작은 영역순으로 찾게 된다. request, session, application 순으로.
② JSTL은 prefix를 지정해 HTML에 자바구문을 작성한다.
(여기서는 core만 정리)
[JSTL의 내장태그들]
[출처] http://blog.naver.com/lagi1101/90121544248
* preifx는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 로 지정한다.
보통 줄임말을 관행상 쓰므로, 흔히 core는 c라고 지정해준다.
Library | Prefix |
core | c |
format | fmt |
database | sql |
XML | x |
function | fn |
* preifx는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 로 지정한다.
보통 줄임말을 관행상 쓰므로, 흔히 core는 c라고 지정해준다.
1. <c:set> ~ </c:set> -변수선언
[기본표기] <c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" >
<c:set var "data" value="루미루미" />
data = ${data} <br>
ex 2) 자바코드로 sql구문을 c:set에 sql변수선언 후 값넣고 ${sql}로 출력
<%@ page import = "java.sql.*", "javax.sql.*" %>
<% String sql = "SELECT * FROM member"; %>
<c:set var = "sql" value = "<%=sql%>" />
sql = ${sql}
2. <c:forEach> ~ </c:forEach> -자바 for문
[기본표기]
<c:forEach itmes="객체명" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수" >
<c:forEach itmes="객체명" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수" >
ex) 상태(status)를 지정해 1부터 5까지의 index에 Hello를 넣고 출력
<c:forEach begin="1" end="5" varStatus="status">
[${status.index}] Hello<br>
</c:forEach>
※ 이때 varStatus는 보통 status로 지정하며, for문의 상태를 체크하는 변수이다.
- {status.current} 현재의 for문에 해당하는 번호
- {status.index} begin에 지정한 값을 초기값으로 반복문 시행
- {status.count} 무조건 1이 초기값
- {status.first} 현재 루프가 처음인지 확인
- {status.last} 현재 루프가 마지막인지 확인
- {status.begin} for문의 시작 값
- {status.end} for문의 끝 값
- {status.step} for문의 증가값
3. <c:choos> ~ </c:choose> -자바 switch문
<c:choose>
<c:when test="조건"></c:when>
<c:otherwise> </c:otherwise>
</c:choose>
ex)
<c:choose>
<c:when test="${b}">
<font color = red>실행문장 </font>
</c:when>
<c:otherwise>
<h1>위조건이외의 경우 실행문장 </h1>
</c:otherwise>
</c:choose>
4. <c:if> ~ </c:if> -자바 if문
[기본표기]
<c:if test="조건" var="변수명" scope="범위" >
<c:if test="조건" var="변수명" scope="범위" >
이외에도 <c:remove>, <c:catch> 등이 있다.
댓글 없음:
댓글 쓰기