본문 바로가기

IT/script

jstl

위키백과, 우리 모두의 백과사전.

자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library, 약칭 JSTL)은 Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음이다. JSTL은 XML 데이터 처리와 조건문, 반복문, 국제화와 지역화와 같은 일을 처리하기 위한 JSP 태그 라이브러리를 추가하여 JSP 사양을 확장했다. JSTL은 JSR 52로서 JCP 하에서 개발되었으며, 2006년 5월 8일에 JSTL 1.2가 출시되었다.

JSTL은 JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다. 표준화된 태그 셋을 사용하여 자바 코드가 들락거리는 것보다 더 코드의 유지보수와 응용 소프트웨어 코드와 사용자 인터페이스 간의 관심사의 분리로 이어지게 한다.


JSTL 사용방법

JSP 선언

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>


변수 데이터 처리

전자정부 프레임워크의 JSP 파일 호출 시 DB에서 조회한 데이터를 변수에 대입할 경우 아래와 같이 사

용하면 됩니다.


JAVA

JSP


함수

함수설명 
 fn:contains(string, str) string이 str을 포함하면 true.
 fn:containslgnoreCase(string, str)대소문자에 관계없이, string이 str을 포함하면 true 리턴. 
 fn:endsWith(string, endfix)string이 endfix로 끝나면 true 리턴 
 fn:escapeXml(string)string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드로 바꿔준 뒤 문자열 리턴. 
 fn:indexOf(string, str)string에서 str이 처음으로 나타는 인덱스 리턴. 
 fn:join(array, separator)array(배열) 요소들을 separator를 구분자로 하여 연결하여 리턴. 
 fn:length(item)item이 배열이나 컬렉션이면 요소의 갯수를 문자열이면 문자의 갯수를 리턴. 
 fn:replace(string, origin, new)string 내에 있는 origin 문자열을 new 문자열로 모두 치환해서 리턴. 
 fn:split(string, separator)string 내의 문자열을 separator에 따라 나누어서 배열로 구성해 리턴. 
 fn:startsWith(string, prefix)
 string prefix 시작하면 true 리턴.
 fn:substring(string, begin, end)
 string에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분(end 인덱스에 있는문자 포함) 문자열을 리턴.
 fn:substringAfter(string, str)
 string에서 str 나타나는 이후의 부분에 있는 문자열을 리턴.
 fn:substringBefore(string, str)
 string에서 str 나타나기 이전의 부분에 있는 문자열을 리턴.
 fn:toLowerCase(string)
 string 모두 소문자로 바꿔 리턴.
 fn:toUpperCase(string)
 string 모두 대문자로 바꿔 리턴.
 fn:trim(string)
 string 앞뒤의 공백(whitespace) 모두 제거하여 리턴.



 <c:set>

변수를 셋팅할 때 사용한다. target을 주면 bean에 설정 할 수 있다. <c:remove>를 사용하면 설정한 변수 값을 수정할 수 있다.

<c:set var="userLevel" scope="session" value="Cowboy">

<c:set target="${persion}" property="name"> 

   ${foo.name}

</c:set>

<c:remove var="userStatus" scope="request" />


<c:out>

JSP 2.0에서 지원하는 expression 으로 대체해서 사용한다.
만약 value 에 "/>" 와 같은 값이 들어간다면 <c:out>을 사용한다.
 
 <c:set var="test" value="test\"/>test" />

<input type="text" value="<c:out value="${test}"/>"/>
<input type="text" value="${test}"/>


<c:foreach>

    배열, Collection, Iterator, Enumeration, Map, comma로 구분되는 문자열 값을 변수로 받아서 반복 처리를 수행하는 태그이며 varStatus로 지정하는 iteration의 상태는 개수만큼
반복하는 경우 그 상태 값을 저장하는 변수 값이다.
 

<c:forEach [var="변수명"] [varStatus="iteration 상태"]  begin="시작" end="종료" [step="스텝"]>

내용

</c:forEach>

 

<c:forEach items="${userList}" var="user" varStatus="listCount">

<tr>

    <td>${listCount.count}</td>

    <td>${user.userName}</td>

</tr>

</c:forEach>

 

<c:forEach items="${userList}" var="user" varStatus="listCount"

         begin="1" end="10" step="1">

<tr>

    <td>${listCount.count}</td>

    <td>${user.userName}</td>

</tr>

</c:forEach>


<c:choose>

조건이 하나 이상일 때 해당 조건에 따라서 처리를 하고자 하는 경우 사용한다.
<c:otherwise>는 지정한 조건들이 충족하지 않는 경우를 처리하며 항상 맨마지막에 사용하고 생략도 가능한다.

<c:choose>

<c:when test='조건'>만족하는 경우</c:when>

<c:otherwise>만족하지 않는 경우</c:otherwise>

</c:choose>


 <c:redirect>

HTTP redirect 기능으로써 클라이언트에게 redirect를 전송한다.

<c:redirect url="http://www.naver.com" />


 <fmt:formatDate>

날짜를 지정한 패턴에 맞춰서 보여주는 태그다. 데이터 형이 Date 여야 한다.
 <fmt:formatDate value="expression" timeZone="expression" type="field" dateStyle="style" timeStyle="style" pattern="expression" var="name" scope="scope"/>
<fmt:formatDate value="${now}"/>
<fmt:formatDate value="${now}" type="DATE" pattern="dd/MM/yyyy"/>


 <fmt:formatNumber>

숫자를 지정한 패턴에 맞춰서 보여주는 태그이다.
 <fmt:formatNumber 
 value="expression" 형식화될 수치
 type="type" 숫자(number), 통화(currency), 퍼센트(percent)
 pattern="expression" 사용자가 지정한 형식 패턴
 currencyCode="expression" ISO 4217 통화코일 드. 통화 형식일 떄만 적용(type="currency)
 currencySymb-ol="expression" 통화기호. 통화 형식일때만 적용
 maxIntegerDigits="expression" 형식 출력에서 integer 최대 자리수
 minIntegerDigits="expression" 형식 출력에서 integer 최소 자리수 
 maxFractionDigits="expression" 형식 출력에서 소수점 이하 최대 자리수
 minFractionDigits="expression" 형식 출력에서 소수점 이하 최대 자리수
 var="name" 형식 출력 결과 문자열을 담는 scope에 해당하는 변수명
 scope="scope" /> var의 scope
 

<fmt:formatNumber value="${price}" pattern="#,###" />

<fmt:formatNumber value="${price}" pattern="#,###" />


-출처 JSTL 사이트-

'IT > script' 카테고리의 다른 글

HTML 외부 프로그램 실행  (0) 2018.11.16
JNLP  (0) 2018.11.16
jquery 함수  (0) 2016.10.05
window property 커스텀  (0) 2016.10.05
treeGrid  (0) 2016.10.05