JSTL 다운로드 사이트 : http://tomcat.apache.org/download-taglibs.cgi
JSTL의 기능
- 간단한 프로그램 로직(자바 변수 선언, if문, for문 등에 해당하는 로직)
- 다른 JSP 페이지 호출(<c:redirect>, <c:import>)
- 날짜, 시간, 숫자 포멧
- JSP 페이지 하나를 가지고 여러가지 언어의 웹 페이지 생성
- 데이터베이스 입력 수정 삭제 조회
- xml 문서 처리
- 문자열 처리함수 호출
커스텀 태그 |
prefix |
기본 URI |
설명 |
기본기능(core) |
c |
http://java.sun.com/jsp/jstl/core |
일반 프로그램이 언어에서 제공하는 것과 유사한 변수 선언, 실행 흐름의 제어 기능을 제공하고, 다른 JSP 페이지로 제어를 이동하는 기능을 제공 |
형식화(format) |
fmt |
http://java.sun.com/jsp/jstl/fmt |
숫자, 날짜 시간, 굿제화, 다국어 지원 기능제공 |
데이터베이스(sql) |
sql |
http://java.sun.com/jsp/jstl/sql |
데이터베이스의 데이터 입력/수정/삭제/조회 기능을 제공 |
XML 처리(xml) |
x |
http://java.sun.com/jsp/jstl/xml |
XML문서를 처리할 때 필요한 기능을 제공 |
함수처리(functions) | fn | http://java.sun.com/jsp/jstl/fn | 문자열을 처리하는 함수 제공 |
` <커스텀 테그>
1. Core 태그
태그 |
설명 |
<c:set> |
변수 값을 설정 |
<c:remove> |
변수에 설정된 값을 제거 |
<c:if> |
조건을 처리할 때 사용 (if문) |
<c:choose> |
여러 조건에 따라 처리를 할 때 사용 |
<c:forEach> |
반복 처리를 할 때 사용 |
<c:forTokens> |
구분자로 분리된 각각의 토큰을 처리할 때 사용 |
<c:import> |
외부의 url을 지정하여 가져다 사용 |
<c:redirect> | 지정한 경로로 이동 |
<c:url> | url을 재작성 |
<c:out> | html내에 데이터를 화면에 출력 <%=%> 와 같은 기능 |
<c:catch> | 예외처리 |
<c:set>
- var 속성에는 문자열 형태로 변수의 이름을 설정하고 value에는 지정할 값을 설정한다. scope는 생략되어있으면 기본값은 page로 설정된다.
<c:set var="변수이름" value="저장할 값" scope="{page|request|session|application}"/>
<c:set var="name" value="hello" scope="page"/>
(pageContext.setAttribute("name"hello");) 와 같다.
OR
<c:set var="변수이름" scope="{page|request|session|application}">
변수에 저장할 값
</c:set>
<c:set var="age" scope="page">
30
</c:set>
<c:remove>
- removeAttribute()와 같은 역할이다. 변수를 제거하는 역할을 한다.
c:remove var="변수이름" scope="{page|request|session|application}"/>
<c:if>
자바의 if문과 비슷한 기능을 한다.
<c:if test="조건식">
조건이 참일경우 실행할 문장
</c:if>
<c:choose>
-<c:if>태그는 else 문을사용할 수 없기 때문에 else if 문구문을 사용하려면 <c:choose>를 이용하여야한다.
<c:choose>내에 여러개의 <c:when> 을 가질 수 있고 순서대로 test조건을 검사하여 결과가 참이면 <c:when>구문태그를 실행한다
조건을 찾지 못할 경우 <c:otherwise>을 실행한다. 생략도 가능.
<c:choose>
<c:when test="조건1"> 결과 </c:when>
<c:when test="조건2"> 결과 </c:when>
<c:otherwise> 결과 </c:otherwise>
</c:choose>
<c:forEach>
- array나 컬렉션 또는 맵 같은 집합체에 저장되어 있는 값들을 순차적으로 처리할 때 사용할 수 있는 태그
<c:forEach var="변수이름" items="배열과 같은 집합체">
처리할 내용
</c:forEach>
- varStatus
배열이나 컬렉션 집합체에서 항목의 인덱스 값을 사용할 때 반복상태 관련 정보를 알려줌
프로퍼티 |
설명 |
index | items에 지정한 집합체의 현재 반복중인 항목의 index를 알려준다 0부터 순서가 부여됨 |
count |
루핑을 돌 때 현재 몇 번째를 반복 중인지 알려준다. 1부터 순서가 부여됨. |
first | 현재 루프가 처음인지 여부를 알려준다. 첫 번째 일경우 true 아니면 false를 리턴 |
last | 현재 루프가 마지막인지 여부를 알려준다. 마지막일 경우 true 아니면 false를 리턴 |
<c:forEach var="movie" items="${movieList}" varStatus="status"> //반복상태 정보를 위한 변수
${status.count} ${status.index} ${movie}<br>
</c:forEach>
- begin, end 속성
begin, end속성을 이용하여 시작번호와 끝 번호를 지정하고 step 속성을 이용하여 증가 구간을 설정하여 원하는 만큼 반복을 수행 할 수 있다.
//varStatus를 이요하여 줄수도 있음
<c:forEach [var="변수이름"] begin="시작 값" end="끝값" [step="증가치"]></c:forEach>
ex)
step를 지정하여 2씩증가
<c:forEach var="i" begin="1" end="10" step="2">
${i}
</c:forEach>
1부터 10까지 증가
<c:forEach var="i" begin="1" end="10" varStatus="status">
${i} ${status.index} ${status.count} <br>
</c:forEach>
<c:forTokens>
- java.util.StringTokenizer와 같이 문자열을 구분자로 분리해서 하나씩 추출할 수 있는 태그 기능
<c:forTokens var="토큰을 저장할 변수" items="토큰을 나눌 문자열" delims="구분자">
처리내용
</c:forTokens>
ex)
<c:forTokens var="city" items="서울,대전,대구,부산.인천,동해" delims=",">
${city}<br>
</c:forTokens>
<c:import>
- 다른 페이지의 내용을 변수에 저장하여 내용을 동적으로 포함시켜 사용하는 것.
<c:import url="URL" [var="변수이름"] [scope="영역"] [charEncoding="charEncoding"]>
</c:import>
${변수명}
<c:url>
- 여러번 반복 할 주소가 있다면 변수에 저장하여 사용
<c:url value="URL" [var="변수명"] [scope="영역"]></c:url>
${변수명}
<c:redirect>
- response.sendRedirect() 메소드와 동일한 기능을 제공한다. 지정한 페이지로 이동시키기 위해 사용
<c:redirect url="URL" [context="경로명"]></c:redirect>
<c:out>
- value 속성에 지정한 문자열 혹은 변수의 내용을 출력할 때 사용하는 태그로써 <%=%>와 같은 역할을 함.
<c:out value="출력할 값" [default="기본값"]>
value : 출력할 값 지정
default : 지정한 값이 없을 경우 사용할 값을 지정
<c:catch>
- 예외 처리를 하기 위해서 사용하는 태그
<c:catch var="변수이름">
예외가 발생할 수 있는 코드
</c:catch>
<c:catch var="errmsg">
예외발생전
<%=1/0 %>
예외발생후
</c:catch>
<c:out value="${errmsg}"></c:out>
2. fml 태그
국제화 지역화 태그로 jsp에서 다양한 언어를 지원받을 수 있도록 할 수 있고, 날짜와 숫자 형식을 다루는데 사용함.
기능 |
태그 |
설명 |
숫자 날짜 형식 |
formatNumber |
숫자를 양식에 맞춰서 출력 |
formatDate |
날짜 정보를 담고 있는 객체를 포멧하여 출력할 때 사용 |
|
parseDate |
문자열을 날짜로 변경한다. |
|
parseNumber |
문자열울 숫자로 변경한다. |
|
setTimeZone |
시간대별로 시간을 처리할 수 있는 기능을 설정 |
|
timeZone |
시간대별로 시간을 처리할 수 있는 기능을 제공한다. |
|
Locale 지정 |
setLocale |
국제화 태그들이 사용할 Locale을 지정한다 |
requestEncoding | 요청 파라미터의 인코딩을 지정 | |
메시지 처리 | bundle | 태그 몸체에서 사용할 리소스 번들을 지정 |
message(param) | 메시지를 출력 | |
setBundle | 특정 리소스 번들을 사용할 수 있도록 로딩 |
<fmt:formatNumber>
수치 데이터는 숫자, 통화량, 퍼센트등을 표현하는 형식으로 원하는 형식으로 수치 데이터를 표현하기 위한 태그
<fmt:formatNumber value="수치데이터" [type="{number | currency | percent}"] [pattern="패턴"]
[currencySymbol="화폐단위"] [groupingUsed= "{true | false}"] [var="변수 이름"]
[scope="{page | request | session | application}"]>
<fmt:formatDate>
날짜와 시각 등 형식들을 표현하는 태그
'Front-End > JSP' 카테고리의 다른 글
MVC2패턴으로 구현한 jsp & servlet 게시판 (0) | 2016.04.26 |
---|---|
[JSP] 쿠키와 세션 (0) | 2016.04.06 |