05.JSP2009. 1. 22. 17:32
반응형

새로운 JSTL1.1 태그 라이브러리 지정자

JSTL1.1은 JSTL을 JSP2.0에 통합하기 위한 마이너 스펙 릴리즈이다. 눈에 띄는 변화는 JSTL1.0의 두개로 분리되었던 라이브러리가 EL과 JAVA표현식 모두를 사용할 수 있는 한가지 라이브러리로 통합된 것이다.
JSTL의 라이브러리들은 다음과 같은 지정자를 사용한다.

Library URI Prefix
Core http://java.sun.com/jsp/jstl/core C
XML precessiog http://java.sun.com/jsp/jstl/xml x
l18N formatting http://java.sun.com/jsp/jstl/fmt fmt
Database access http://java.sun.com/jsp/jstl/sql sql
Function http://java.sun.com/jsp/jstl/function fn

EF Function

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

함수테스트 JSP 소스

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

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


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

    <h1>EL Function(JSTL1.1)</h1>

    <c:set var="name" value="Oracle dbms 오라클클럽"/>
    <c:set var="name" value="${fn:trim(name)}"/><br/>
    <c:out value="name: ${name}"/><br/><br/>

    <c:out value="length(name): ${fn:length(name)}"/><br/>
    <c:out value="toUpperCase(name): ${fn:toUpperCase(name)}"/><br/>
    <c:out value="toLowerCase(name): ${fn:toLowerCase(name)}"/><br/>
    <c:out value="substring(name,3,6): ${fn:substring(name,3,6)}"/><br/>
    <c:out value="substringBefore(name,'dbms'): ${fn:substringBefore(name, 'dbms')}"/><br/>
    <c:out value="substringAfter(name,'dbms'): ${fn:substringAfter(name, 'dbms')}"/><br/>
    <c:out value="replace(name, '오라클클럽', 'Korea'): ${fn:replace(name, '오라클클럽', 'Korea')}"/><br/>
    <c:out value="indexOf(name, 'dbms'): ${fn:indexOf(name,'dbms')}"/><br/>
    <c:out value="contains(name, 'Oracle'): ${fn:contains(name, 'Oracle')}"/><br/>
    <c:out value="containsIgnoreCase(name, 'opracle'): ${fn:containsIgnoreCase(name, 'oracle')}"/><br/>
    <c:out value="startsWith(name, 'Oracle'): ${fn:startsWith(name, 'Oracle')}"/><br/>
    <c:out value="startsWith(name, 'dbms'): ${fn:startsWith(name, 'dbms')}"/><br/>
    <c:out value="endsWith(name, '오라클클럽'): ${fn:endsWith(name, '오라클클럽')}"/><br/><br/>
    <c:remove var="name"/>

    <c:out value="=================================================================="/><br/><br/>

    <c:set var="db" value="ORACLE, DB2, MSSQL, MYSQL, SYSBASE"/>
    <c:set var="db_arr" value="${fn:split(db,',')}"/>
    <c:forEach var="x" items="${db_arr}">
        <c:out value="${x}"/><br/>
    </c:forEach>
    <c:out value="${fn:join(db_arr, ',')}"/><br/>

   </body>
</html>

문서에 대하여

Posted by 1010