거꾸로 바라본 세상
Published 2016. 4. 7. 15:04
[JSP] JSTL Front-End/JSP
반응형

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:remove var="age"/>



<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} &nbsp;

</c:forEach>


1부터 10까지 증가

<c:forEach var="i" begin="1" end="10" varStatus="status">

${i} &nbsp; ${status.index} &nbsp; ${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
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!