JAVA/JSTL
JSTL 활용한 UI 레이어 구현 방법
빈센트코드
2010. 11. 29. 17:25
- J2EE 소형 클라이언트 기술인 JSP(JavaServer Pages)가 지난 몇 년 동안 널리 일반화되면서 독립적인 개발자들은 많은 사용자 정
의 JSP 태그 라이브러리를 만들었습니다. 이러한 태그 라이브러리는 대부분 서로 다른 목표를 달성하도록 작성되었지만 반복, 조건 등의 일
반적인 작업을 위한 유사한 솔루션을 제공하는 경향이 있습니다.
유사하고 일반적이 문제점을 해결하는 독립적인 태그 라이브러리에 대한 필요성을 줄이기 위해 Java Community Process(JSR 52)의 지
원하에 JSTL(JavaServer Pages Standard Tag Library)이 개발되었습니다. JSTL은 이러한 일반 기능을 처리하는 하나의 표준 솔루션
을 제공합니다. (말그대로 표준태그라이브러리)
- JSTL의 주요 강점 중 하나는 서블릿 컨텍스트에 저장된 데이타 같은 애플리케이션 데이타를 액세스 및 조작하는 쉬운 방법을 제공하는 간
단한 EL을 사용할 수 있다는 것입니다.
EL 에 대하여
- web.xml 에
를 추가한다.
- jsp 에 추가
Area |
Subfunction |
Prefix |
Description |
Core |
Variable support |
c |
변수지원 |
Core |
Flow control |
c |
흐름제어 |
Core |
URL management |
c |
URL 처리 |
Core |
Miscellaneous |
c |
|
XML |
Core |
x |
XML 코어 |
XML |
Flow control |
x |
흐름 제어 |
XML |
Transformation |
x |
XML 변환 |
I18n |
Locale |
fmt |
지역 |
I18n |
Message formatting |
fmt |
메시지 형식 |
I18n |
Number and date formatting |
fmt |
숫자 및 날짜 형식 |
Database |
SQL |
sql |
SQL |
Functions |
Collection length |
fn |
콜렉션 처리 |
Functions |
String manipulation |
fn |
String 처리 |
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html 참고
- 변수지원태그
set: <c:set var="varName" scope="session" value="someValue">
var속성은 값을 지정할 변수의 이름
<c:set t a r g e t ="" property="userName" value="someValue">
target : 빈 프로퍼티나 맵 값을 설정한다.(Object)
var와 target을 동시에 사용할 수 없다.
scope속성은 변수가 위치하는 영역(page,request,session,application)
value :저장하는 값
remove :<c:remove var="varName" scope="session">
var :삭제할 변수의 이름
scope 속성은 삭제할 변수의 영역
out : <c:out value="">
value속성은 출력하려는 값
catch : <c:catch var="">
</c:catch>
예외사항이 한번이라도 발생시 </c:catch>로 점프
var에 정의 된 객체를 페이지 생존범위에 자동으로 묶어 나중에 var에 정의된 변수이름을 사용할 수 있다.
예외 발생시
: var 속성 사용시 exception 객체를 설정.
<c:catch> 문 밖으로 제어가 떨어진다
- URL 관련
import : <c:import url=""/>
url속성에 명기한 파일을 현재 컨텐츠에 포함
param : <c:param name="" value=""/>
<jsp:param />과 같은 역할
url : <c:url value="" var=""/>
value에 들어있는 상대 경로 뒤에 jsessionid를 추가한다.(쿠키를 사용 못하는 경우)
var : 옵션 속성으로 url을 참조하기 위해쓴다.
redirect :<c:redirect url="' context=""/>
context : url경로의 이름
- 흐름제어 태그
if : <c:if test="조건"> </c:if>
test속성의 값에는 "조건"이 오는데 이 조건문의 결과값이 true 면 처리
choose,when,otherwise : <c:choose>
<c:when test="조건">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
choose 태그는 자바의 switch 문과 if-else 의 혼합한 형태, 다수의 조건문을 하나의 블록에서 수행하고자 할때 사용
-> switch문과의 차이점은 중간에 빠져 나가지 못한다는 것이다.
-> when 의 어느 하나에도 실행되지 않을때 otherwise 실행
-> otherswise 태그가 반드시 있어야 하는것은 아니다.
forEach : <c:forEach var="변수" items="아이템" begin="시작값" end="끝값" step="증가값">
</c:forEach>
item 속성에 올수 있는 것들로는 Map,배열,Collection 이 있다.
varStatus는 javax.servlet.jsp.jstl.core.LoopTagStatus 객체 인스턴스변수를 만들며 count라는 프로퍼티가 있어 몇번의 회전인지 알 수있다.
forTokens : <c:forTockens var="token" items="문자열" delins="구분자">
</c:forTockens>
forTokens 태그는 StringTokenizer 와 같은 기능을 제공한다.
- 숫자 및 날짜 지원 형식
The JSTL formatting actions allow various data elements in a JSP page, such as numbers,dates and times
to be formatted and parsed in a locale-sensitive or customized manner.
formatNumber : 숫자 형식을 표현
parseNumber : 정해진 패턴을 문자열에서 수치를 파싱해내는 태그
formatDate :날짜 형식을 표현
parseDate :정해진 패턴의 문자열에서 날짜를 파싱해내는 태그
timeZone : <fmt:timeZone value=""/>
setTimeZone : <fmt:timeZone value="" var="" scope=""/>
- 국제화
message <fmt:message
setLocale <fmt:setLocale
bundle <fmt:bundle
setBundle <fmt:setBundle
param <fmt:param
requestEncoding <fmt:requestEncoding
- SQL
<sql:query sql="sqlQuery" var="varName" [scope="{page|request|session|application}"]
[dataSource="dataSource"] [maxRows="maxRows"] [startRow="startRow"]>
<sql:param>
</sql:query>
<sql:update>
<sql:setDataSource>
<sql:param>
<sql:dateParam>
- XML 코어
<x:parse>
<x:out>
<x:set>
- 흐름제어
<x:if>
<x:choose>
<x:when>
<x:otherwise>
<x:forEach>
- XML 변환
<x:transform>
<x:param>
- function
contains
containsIgnoreCase
endsWith
escapeXml
indexOf
join
length
replace
split
startsWith
substring
substringAfter
substringBefore
toLowerCase
toUpperCase
trim
| |