JSTL
JSTL은 JSP 표준 태그 라이브러리(JSP Standard Tag Library)의 약어이다.
JSP에서는 JSTL을 통하여 연산이나 조건문, 반복문, DB를 편하게 처리할 수 있다.
JSP 지시자 태그 <%@ taglib %>로 선언 후 사용 가능하다.
JSTL 태그의 종류
1. Core ( prefix="c" )
- 주요기능 : 반복문, 제어문, 페이징 처리 관련
- 지시자 태그 : <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2. Function ( prefix="fn" )
- 주요기능 : collection 처리, String 처리
- 지시자 태그 : <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/fuctions" %>
3. Formatting ( prefix="fmt" )
- 주요기능 : 숫자, 날짜, 시간을 포맷팅 처리, 국제화 지원
- 지시자 태그 : <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
4. DataBase ( prefix="sql" )
- 주요기능 : DB관련, CRUD처리
- 지시자 태그 : <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
5. XML ( prefix="x" )
- 주요기능 : XML 관련 처리
- 지시자 태그 : <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
JSTL의 Core Library
1. <c:set>
num 이라는 변수에 100 값을 설정
<c:set var="num" value="100">
num이라는 변수에 100 값을 설정하고 page로 scope를 설정하여 특정 서블릿이나 JSP가 실행되는 동안에만 num이 100이라는 값의 정보를 유지하도록 할 수 있다.
<c:set var="num" value="100" scope="page">
자바의 Int num= 100; 을 <c:set var="num" value="100"> 으로 바꿨다고 생각하면 된다.
2. <c:out>
<c:out value="출력할 값" default="value가 null값일 경우 출력할 값">
자바의 System.out.print("안녕하세요"); 를 간단하게 <c:out value="안녕하세요">로 변경하여 출력할 수 있다.
value 값에는 el 표현식 사용도 가능하다.
3. <c:remove>
<c:remove var="변수명":scope="영역"/>
한 영역의 변수명을 지우는 코드이다. 영역을 생략할 경우 모든 영역의 변수가 삭제된다.
영역은 page > request > session > application 의 순서를 가진다.
4. <c:choose>
<c:when test="조건식">
<c:otherwise>
자바의 if-else 구문을 생각하면 된다. 다수의 조건문을 걸고 싶을 떄 사용한다.
<c:choose>
<c:when test="${empty list}">
등록된 글이 없습니다.
</c:when>
<c:when test="${abc}">
안녕하세요.
</c:when>
<c:otherwise>
<c:set var="doenLoop" value="false"/>
</c:otherwise>
</c:choose>
위와 같이 <c:choose> 태그안에 <c:when>을 중복하여 사용이 가능하며, boolean값이 True일 경우 블록을 수행한다.
모든 값이 False일 경우 <c:otherwise>를 실행한다.
5. <c:if>
<c:if test="조건식" var="조건을 검사하고 return되는 bool값을 저장할 변수" scope="bool 변수가 사용될 범위/>
자바의 if 문과 동일하지만 else문은 없다.여기서 scope값을 생략하면 기본으로 Page영역이 지정된다.
6. <c:forEach>
<c:forEach begin="시작값" end="끝값" step="증가값" var="count값이 저장될 변수"/>
<c:forEach var="변수" items="배열 or 컬랙션" varStatus="반복 상태를 알수있는 변수"/>
배열이나 컬랙션, Map 에 저장되어있는 값들을 순서대로 처리할 때 사용한다.
<c:forEach var="item" items="${list}" begin=0 end=5 step=1 varStatus="status">
<tr>
<th>번호</th>
<td>${status.count}</td>
<th>이름</th>
<td>${item.name}</td>
<th>나이</th>
<td>${item.age}</td>
</tr>
</c:forEach>
7. <c:forTokens>
<c:forTokens var="변수명" items="문자열" delims="구분자">콘텐츠</c:forTokens>
문자열을 delimiter(구분자)로 분리해서 반복문을 돌리는데 사용한다.
<% pageContext.setAttribute("tokens", "v1=20&v2=20&op=+"); %>
<ul>
<c:forTokens var="item" items="${tokens}" delims="&">
<li>${item}</li>
</c:forTokens>
</ul>
위 코드의 실행결과는 아래와 같다.
v1=20
v2=20
op=+
'WebBase' 카테고리의 다른 글
[WebBase] jQuery.ajax (0) | 2022.06.23 |
---|---|
[WebBase] Ajax (0) | 2022.06.23 |
[WebBase] JSP (Java Server Page) (0) | 2022.06.17 |
[WebBase] Servlet (서블릿) (0) | 2022.06.16 |
[WebBase] WAS(Web Application Server) (0) | 2022.06.15 |