커스텀태그

설명

core(기본 기능)

일반 프로그램이 언어에서 제공하는 것과 유사한 변수 선언, 실행 흐름의 제어 기능을 제공

다른 JSP페이지로 제어를 이동하는 기능 제공

format(형식화)

숫자, 날짜, 시간을 formatting하는 기능과 국제화, 다국어 지원 기능을 제공

sql(데이터 베이스)

데이터베이스의 데이터를 입력/수정/삭제/조회하는 기능을 제공

xml(XML처리)

XML문서를 처리할 때 필요한 기능을 제공

functions(함수처리)

문자열을 처리하는 함수를 제공

 

core태그의 종류

태그

설명

<c:set>

변수에 값을 설정

<c:remove>

변수에 설정된 값을 제거

<c:if>

조건에 따라 처리를 달리 할 때 사용됨

<c:choose>

여러조건에 따라 처리를 달리 할 때 사용됨

<c:forEach>

반복 처리를 위해서 사용됨

<c:forTokens>

구분자로 분리된 각각의 토큰을 처리할 때 사용됨

<c:import>

외부의 자원을 url을 지정하여 가져다 사용함

<c:redirect>

지정한 경로로 이동함

<c:url>

url을 재작성

<c:out>

데이터를 출력할 때 사용하는 태그

표현식인 <%= %>을 대체할 수 있다.

<c:catch>

예외 처리에 사용

 

▶<c:set>

    변수에 값, 속성, 영역을 지정. setAttribute와 같은 역할.

<c:set var="msg" value="Hello" scope="page"/>
/**var = 변수명을 String으로 지정
value = 변수에 저장할 값을 지정.
scope = 변수가 효력을 발휘할 영역. (생략할 경우 page영역에 자동으로 변수가 저장)**/

<c:set var="변수이름" [scope="{page|request|session|application}"]>
저장할 값
</c:set>

 

▶<c:remove>

    변수에 설정된 값을 제거. JSP의 removeAttribute()와 같은역할.

<c:remove var="변수 이름" [scope="{page|request|session|application}"]>

//ex.
<c:remove var="age">
//page scope에 있는(생략되어있으면 기본 영역이 page) age변수를 제거.

 

▶<c:if>

    일반 자바에서 if문의 기능과 동일. 그렇지만 else기능은 없음.

<c:if test="조건식">
true일경우 실행문장
</c:if>

 

▶<c:choose>

    <c:if>에서 else를 사용할 수 없었던 문제를 해소할 수 있다. <c:when>, <c:otherwise>와 함께 쓰인다.

    자바의 switch문처럼 여러경우에 대해서 처리 가능.

<c:choose>
  <c:when test="${param.userType == 'admin'}">
    ${param.id}  //admin
  </c:when>
  <c:otherwise>  //else와 같은 의미
    ${param.id}  //user
  </c:otherwise>
</c:choose>


<c:choose>
  <c:when test="조건1">
    body1
  </c:when>
  <c:when test="조건2">
    body2
  </c:when>
  <c:otherwise>  //else와 같은 의미
    body3
  </c:otherwise>
</c:choose>

 

▶<c:forEach>

    배열이나 collection 또는 Map 등과 같은 집합체에 저장되어있는 값들을 순차적으로 처리할 때 사용할 수 있는 태그

<c:forEach [var="변수 이름"] items="배열">
  body
</c:forEach>

//ex.
<c:forEach var="bookdt" items="${bookDetail}">
  <tr>
    <td>${bookdt.bookNo}</td>
    <td>${bookdy.bookTitle}</td>
  </tr>
</c:forEach>

 

▶<c:forTokens>

    java문에서 java.util.StringTokenizer와 비슷한 역할. 문자열을 구분자로 분리해서 하나씩 추출.

<c:forTokens var="토큰을 저장할 변수" items="토큰으로 나눌 문자열" delims="구분자">
  body
</c:forTokens>


//ex.
<c:forTokens item="서울.인천, 대구.부산" delims="," var="city">
  ${city}<br>
</c:forTokens>

<c:forTokens items="서울.인천, 대구.부산" delims=",." var="city">
  ${city}<br>
</c:forTokens>

/*결과값
서울.인천
대구.부산

서울
인천
대구
부산*/

 

▶<c:import>

    다른 페이지의 내용을 포함시키기 위해서 사용. <jsp:include> 태그는 단순히 페이지를 포함 시키지만

    <c:import> 태그는 다른페이지의 내용을 변수에 저장할 수 있다.

<c:import url="URL" [var="변수 이름"][scope="영역"][charEncoding="charEncoding"]>
</c:import>
//ex.

//main.jsp
<c:import url="../sub.jsp" var="data"></c:import>

${data}
</body>

//sub.jsp
<body>
  정수형:${10}<br>
  실수형:${5.6}<br>
  문자열형:${"안녕"}<br>
  논리형:${true}<br>
  null:${null}<br>
</body>

//결과
정수형:10
실수형:5.6
문자열형:안녕
논리형:true
null:

 

▶<c:url>

    이후에 여러번 반복되어 사용할 주소가 있다면 변수에 저장하기 위해서 사용된다.

<c:url value="URL" [var="변수 이름"][scope="영역"]>
</c:url>

//ex.
<c:url value="../img/2.jpg" var="data"></c:url>
<h3>${data}</h3>
<img src="${data}" width="200" height="200">

▶<c:redirect>

    response.sendRedirect() 메소드와 동일한 기능 제공

<c:redirect url="URL" [context="경로명"]>

//ex.
<c:redirect url="main.jsp"></c:redirect>

 

▶<c:out>

    value 속성에 지정한 문자열 혹은 변수의 내용을 출력할 때 사용하는 태그

    JSP의 표현식(<%= %>) 표현언어 EL(${})

    

    <c:out>의 속성

속성

설명

value

출력할 값을 지정

default

지정한 값이 없을 경우 사용할 값을 지정함.

<c:out value="value" [default="기본값"]/>  //default는 생략 가능

<c:out value="value">
기본값
</c:out>

//ex.
<c:out value="${age}" default="10"/>
//변수 age가 없거나 저장된 값이 없을때에는 default속성값인 10을 출력
<c:out value="${age}">
10
</c:out>

 

▶<c:catch>

    자바에서의 try-catch 역할.

<c:catch var="변수 이름">
  예외가 발생할 수 있는 코드
</c:catch>

//ex.
<c:catch var="errmsg">
  예외 발생 전
<%= 1/0 %>
  예외 발생 후
</c:catch>

 

 

기능

prefix

기본 URI

기본 기능

c

http://java.sun.com/jsp/jstl/core

형식화

fmt

http://java.sun.com/jsp/jstl/fmt

데이터베이스 작업

sql

http://java.sun.com/jsp/jstl/sql

XML 처리

x

http://java.sun.com/jstl/xml

함수처리

fn

http://java.sun.com/jsp/jstl/functions

or

http://java.sun.com/jsp/jstl/fn

 

 

fmt태그의 종류

기능

태그

설명

숫자 날짜 형식

formatnumber

숫자를 양식에 맞춰서 출력

formatDate

날짜 정보를 담고 있는 객체를 포맷팅하여 출력할 때 사용

parseDate

문자열을 날짜로 파싱

parseNumber

문자열을 수치로 파싱

setTimeZone

시간대별로 시간을 처리할 수 있는 기능을 제공

timeZone

시간대별로 시간을 처리할 수 있는 기능을 제공

로케일지정

setLocale

국제화 태그들이 사용할 로케일을 지정

requestEncoding

요청 파라미터의 인코딩을 지정

메시지 처리

bundle

태그 몸체에서 사용할 리소스 번들을 지정

message(param)

메시지를 출력

setBundle

특정 리소스 번들을 사용할 수 있도록 로딩

 

▶ <fmt:formatNumber>

    value속성에 지정한 수치 데이터를 출력할 때 단위를 구분하기 위해 사용되는 콤마를 세자리마다 한번씩 찍어준다.

<fmt:formatNumber value="수치 데이터"
[type="{number|currency|percent}"]
[pattern="패턴"]
[currencySymbol="화폐 단위"]
[groupingUsed="{true|false}"]
[var="변수 이름"]
[scope="{page|request|session|application}"]>

속성

표현식

타입

설명

value

true

String or Number

형식화할 수치 데이터

type

true

String

숫자(Number), 통화(currency), 퍼센트 중 어느 형식으로 표시할 지 지정

pattern

true

String

사용자가 지정한 형식 패턴

currencySymbol

true

String

통화기호, 통화형식(type=”currency”)일 때만 적용

groupingUsed

true

boolean

콤마와 같이 단위를 구분할 때 사용하는 기호를 표시할 지 여부를 결정.

true10,000과 같이 구분 기호가 사용되며, false10000형식으로 출력

var

false

String

형식 출력 결과 문자열을 담는 scope에 해당하는 변수 이름

scope

false

String

var 속성에 지정한 변수가 효력을 발휘할 수 있는 영역 지정

 

▶<fmt:formatDate>

날짜를 2020.08.22와 같은 형태로 출력하고자 할 경우 사용.

value속성에 date를 넣어서 처리하기 위해서는 java.util.Date 클래스로 객체를 생성하는것이 필수적.

-선행조건

<c:set var="now" value="<%=new java.util.Date()%>"/>

<fmt:formatDate value="date"
[type="{time|date|both}"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
[pattern="customPattern"]
[timeZone="timeZone"]
[var="변수 이름"]
[scope="{page|request|session|application}"]>

속성

표현식

타입

설명

value

true

java.util.Date

형식화될 Datetime

type

true

String

형식화할 데이터 타입 셋 중 하나를 지정. time, date, both

dateStyle

true

String

미리 정의된 날짜 형식으로 default | short | medium | long | full중 하나 지정

timeStyle

true

String

미리 정의된 날짜 형식으로 default | short | medium | long | full중 하나 지정

pattern

true

String

사용자 지정 형식 스타일

timeZone

true

String 또는 java.util.Date

형식화 시간에 나타날 타임존

var

false

String

형식 출력 결과 문자열을 담는 scope에 해당하는 변수 이름

scope

false

String

var 속성에 지정한 변수가 효력을 발휘할 수 있는 영역 지정

 

▶<fmt:setTimeZone>

   특정 지역의 타임존을 설정하는 태그.

<fmt:setTimeZone value="timeZone"
[var="변수 이름"]
[scope="{page|request|session|application}"]>

▶<fmt:timeZone>

    타임존을 부분 적용하는 태그.

<fmt:timeZone value="timeZone">
body
</fmt:timeZone>

 

▶<fmt:setLocale>

    다국어 페이지를 만들 때 통화와 날짜의 형식을 변경할 때 쓰임

<fmt:setLocale value="locale"></fmt:setLocale>

 

▶<fmt:requestEncoding>

    post방식으로 넘어오는 페이지에서 한글 데이터가 깨지지 않도록 하는 역할을 함.

    request.setCharacterEncoding("UTF-8") 메소드와 동일.

<fmt:requestEncoding value="charsetName"></fmt:setLocale>

 

출처:

https://m.blog.naver.com/PostView.nhn?blogId=imf4&logNo=220654812087&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

sql태그의 종류

Name

Required

Request-time

Type

Desc

var

false

false

java.lang.String

변수에 DataSource 스펙 저장

scope

false

false

java.lang.String

변수 공유 범위

dataSource

false

true

java.lang.String

컨텍스트에 JNDI 설정 시 Resource Name

driver

false

true

java.lang.String

드라이버 클래스 명

url

false

true

java.lang.String

JDBC URL

user

false

true

java.lang.String

DB 사용자 계정

password

false

true

java.lang.String

DB 사용자 패스워드

 

 

 

+ Recent posts