썩구노트

JSTL 강좌 본문

JavaScript

JSTL 강좌

양석규 2016. 10. 14. 10:26

jstl 숫자, 금액, 날짜 (3자리 콤마)

jstl 숫자, 금액, 날짜

jstl value에 패턴 속성을 이용하여 쉽게 변환이 가능합니다.

#,###.## 돈계산 할때 많이 사용하죠 .. 3자리 콤마 등등 ^^

날짜도 마찬가지 입니다. date객체 값을 넘겨주기만하면 원하는 패턴으로 뿅 !

편리한거는 많이 많이 애용합시다. ㅋ

 

1
2
3
4
5
6
7
숫자 천단위마다 콤마 찍어 구분
<fmt:formatNumber value=”${vo.basket_goods_amount}” groupingUsed=”true”/>
금액 표시
<fmt:formatNumber value=”${vo.goods_price}” pattern=”\#,###.##”/>
 
날짜 표시
<fmt:formatDate value=”${vo.basket_date}” type=”both” pattern=”yyyy-MM-dd(E)”/>

 

<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
pageEncoding=”EUC-KR”%>
<%@taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
<%@taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt”%>
<%@page import=”java.util.*” %>
<c:set var=”date” value=”<%=new Date() %>”/>

<!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=EUC-KR”>
<title>Insert title here</title>
</head>
<body>
[오늘의 날짜]<fmt:formatDate value=”${date}” type=”date”/><br/> <%– 정해진폼의 날짜 formatDate –%>
[오늘의 날짜]<fmt:formatDate value=”${date}” type=”both”/><br/>
[현재의 시간]<fmt:formatDate value=”${date}” type=”time”/><br/>
[오늘의 날짜:S]<fmt:formatDate value=”${date}” type=”both” dateStyle=”short” timeStyle=”short”/><br/>
[오늘의 날짜:M]<fmt:formatDate value=”${date}” type=”both” dateStyle=”medium” timeStyle=”medium”/><br/>
[오늘의 날짜:L]<fmt:formatDate value=”${date}” type=”both” dateStyle=”long” timeStyle=”long”/><br/>
[오늘의 날짜:F]<fmt:formatDate value=”${date}” type=”both” dateStyle=”full” timeStyle=”full”/><br/>
[오늘의 날짜]<fmt:formatDate value=”${date}” type=”date” pattern=”yyyy-MM-dd”/><br/>
[오늘의 날짜]<fmt:formatDate value=”${date}” type=”time” pattern=”(a)hh:mm:ss”/><br/>
</body>
</html>

======================================================================

<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
pageEncoding=”EUC-KR”%>
<%@taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
<%@taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt”%>
<!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=EUC-KR”>
<title>Insert title here</title>
</head>
<body>
첫번째 수:<fmt:formatNumber value=”1234500″ groupingUsed=”true”/><br/><%– groupingUsed는 천단위마다 콤마를찍음(디폴트로 정해짐) –%>
두번째 수:<fmt:formatNumber value=”3.14158″ pattern=”##.##”/><br/><%– #은 자리표기 숫자가 없으면 공백으로–%>
세번째 수:<fmt:formatNumber value=”10.5″ pattern=”#.00″/><br/><%– 0은 자리표기 숫자가 없으면 0으로–%>
금액:<fmt:formatNumber value=”${vo.goods_price}” pattern=”\#,###.##”/>
금액:<fmt:formatNumber value=”1000000″ type=”currency” currencySymbol=”₩”/><br/>
금액:<fmt:formatNumber value=”1000000″ pattern=”$#,###.00″/><br/>
퍼센트:<fmt:formatNumber value=”0.99″ type=”percent”/><br/>
퍼센트:<fmt:formatNumber value=”0.99″ pattern=”#,###.00%”/><br/>
</body>
</html>

jstl 태그 함수

JSP Standard Tag Library

JSTL 자주쓰는것만 정리해서 모아보았습니다.
더 자세한 태그들을 보려면
http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
^^친절하게 나와있습니다.
그럼 자주쓰는 모음부터 하나하나 익혀볼까요?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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앞뒤의 공백을 모두 제거하여 반환
 
 
fn:replace
 
string의 문자 내용 변경
 
<c:out value="${fn:substring(문자내용,시작위치, 제거위치 )}" />    
 
 
fmt:formatNumber
number type 변환 자릿수 표현
<fmt:formatNumber value="${totalCount }" pattern="#,###" />

 

JSTL 소수점 제외.

가끔 결과 값에 따라서 소수점을 제외하는 상황이 발생합니다.

JSTL로 소수점을 제외하는 방법을 알아봅시다.

1
< fmt:parseNumber var= "pages" integerOnly= "true" value= " ${totalCnt/rowsPerPage } " />

JSTL 개행문자 치환하기

디비에서 가져온 값의 ‘\n’을 <br>로 변경시키기위해선

아래의 내용을 jsp파일에 세팅한후 적용한다. fn:replace에 직접 ‘\n’ or ‘\\n’ 해도 안먹힘

1
2
3
4
5
6
7
8
9
10
<!-- fn:replace 의 \n <br> 변환하기위한 세팅 -->
 
<jsp:scriptlet>
 
pageContext.setAttribute("newline", "\n");
 
</jsp:scriptlet>
 
&nbsp;
 ${fn:replace(str문자열, newline, "<br/>")}

JSTL 비교문법

값이 같은가? 에 대한 비교로 보통 “== “, “!=” 을 많이 사용한다

이는 jstl에서도 마찬가지면 숫자와 문자 구분은 따움표로 구만해서 사용하는데 이대신 eq, ne를 사용하는것과

list, map 같은 객체가 값이 있느냐 없느냐의 구분하는 용도로 empty 를 사용 할 수 있다.

사용법은 아래와 같다

=============================================== Sample =============================================

1
2
3
4
Ex) eq (==)
1. <c:if test="${ null eq test_column }"> // null
2. <c:if test="${ 0 eq test_column }"> // 숫자
3. <c:if test="${ '0' eq test_column }"> // 문자
1
2
3
Ex) empty 
= <c:if test="${ empty  test_columnMap }"> // list, map 객체 등
= <c:if test="${ !empty  test_columnMap }"> // 비어 있지 않은 경우
1
2
3
4
Ex) ne (!=)
1. <c:if test="${ null ne test_column }"> // null
2. <c:if test="${ 0 ne test_column }"> // 숫자
3. <c:if test="${ '0' ne test_column }"> // 문자

JSTL 문법 익히기

JSTL에서 사용되는 문법을 익혀봅시다.
더불어 EL 태그도 익히도록 ^,^설정#

web.xml

<taglib>

<taglib-uri>jstl-c</taglib-uri>

<taglib-location>/WEB-INF/tlds/jstl/c.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>jstl-fmt</taglib-uri>

<taglib-location>/WEB-INF/tlds/jstl/fmt.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>jstl-fn</taglib-uri>

<taglib-location>/WEB-INF/tlds/jstl/fn.tld</taglib-location>

</taglib>

jsp 에서

<%@ taglib uri=”jstl-c” prefix=”c” %>

<%@ taglib uri=”jstl-fmt” prefix=”fmt” %>

<%@ taglib uri=”jstl-fn” prefix=”fn” %>

EL#

  1. 생존범위 속성 맵
    1. pageScope
    2. requestScope
    3. sessionScope
    4. applicationScope
  2. 요청 파라미터 맵
    1. param
    2. paramValues
  3. 요청 헤더 맵
    1. header
    2. headerValues
  4. 쿠키 맵
    1. cookie
  5. 컨텍스트 초기화 파라미터 맵(서블릿 초기화 파라미터 아님)
    1. initParam
  6. 실제 pageContext 객체에 대한 참조. 이것은 빈임
    1. pageContext
      1. pageContext 접근자
        1. getErrorData()
        2. getPage()
        3. getRequest()
        4. getResponse()
        5. getServletConfig)()
        6. getServletContext()
        7. getSession()
      2. JspContext로 부터 상속받은 접근자
        1. getAttribute()
        2. getAttributeNamesInScope()
        3. getAttributesScope()
        4. getExpressionEvaluator()
        5. getOut()
        6. getVariableResolver()

스크립팅

  1. <$= request.getHeader(“host”) %>

EL 내장 객체

  1. ${header[“host”]}
  2. ${header.host}
  3. ${headerValues.host[]}

스크립팅

  1. <%= request.getMethod() %>

EL 내장 객체

  1.  ${pageContext.request.method}

core#

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

  • 일반적인 것
    • <c:out>
    • <c:set>
    • <c:remove>
    • <c:catch>
  • 조건
    • <c:if>
    • <c:choose>
    • <c:when>
    • <c:otherwise>
  • URL 관련
    • <c:import>
    • <c:url>
    • <c:redirect>
    • <c:param>
  • 반복
    • <c:forEach>
    • <c:forEachToken>

① set

– JSP의 setAttribute()와 같은 역활

– 기본형

<c:set   var=”변수명”

value=”변수명에 할당된 값”

target=”자바빈 객체명이나 Map 객체명”

property=”자바빈 객체나 Map 객체의 값을 설정할 프로퍼티 명”

scope=”변수의 공유 범위(유효기간)으로 page|request|session|application” />

– 예제

<c:set var=”country” value=”${‘Korea’}” />

<c:set var=”intArray” value=”<%=new int[] {1,2,3,4,5}%>” />

<c:set var=”sum” value=”${sum+i}” />

② out

– JSP의 표현식을 대체하는 것으로 많이 사용됨

– 기본형

<c:out var=”변수명”

default=”기본값”

escapeXML=”true|false” />

* escapeXML

> 생략시 기본값은 true

> true일 경우 값 중에 포함된 <>&'” 문자들을 각각 &lt;, &gt;, &amp;, &#039;, &#034;로 출력

– 예제

<c:out value=”${sum}” />

<c:out value=”${val}” />

③ remove

– JSP의 removeAttribute()와 같은 역활

– 기본형

<c:remove var=”변수명”

scope=”변수의 공유 범위로 page(생략 시 기본)|request|session|application” />

– 예제

<c:remove var=”browser” />

④ catch

– body 위치에서 실행되는 코드의 예외를 잡아내는 역할

– 기본형

<c:catch var=”에러가 발생할 때 에러 메세지가 포함될 변수명” />

– 예제

<c:catch var=”errmsg”>

line 1~

<%=1/0%>

line 2~

</c:catch>

<c:out value=”${errmsg}” />

⑤ if

– 조건문에 사용

– 기본형

<c:if   test=”조건 판별식”

var=”변수명”

scope=”변수의 공유범위 page|request|session|application”

– 예제

<c:if test=”${country != null}”>

국가명 : <c:out value=”${country}” />

</c:if>

⑥ choose

– 자바의 switch문과 동일

– 조건에서 문자열 비교가 가능

– 하나 이상의 <when>과 하나의 <otherwise> 서브 태그를 가짐

⑦ when

– choose 태그의 서브태그

– choose 태그내에서 여러번 사용될 수 있다.

– 기본형

<c:when test=”조건 판별식” />

⑧ otherwise

– choose 태그의 서브태그

– choose 태그내에서 한번만 사용될 수 있다.

– 예제 :

<c:choose>

<c:when test=”${country == ‘Korea’}”>

나라 : <c:out value=”${country}” />

</c:when>

<c:when test=”${country == ‘Canada’}”>

나라 : <c:out value=”${country}” />

</c:when>

<c:otherwise>

선택된 나라가 없습니다.

</c:otherwise>

</c:choose>

⑨ forEach

– 객체 전체에 걸쳐 반복 실행할 때 사용

– 기본형

<c:forEach   items=”반복할 객체명”

begin=”시작값”

end=”종료값”

step=”증가값”

var=”변수명”

varStatus=”별도의 변수” />

<c:set var = “sum” value = “0” />

<c:forEach var = “i” begin = “1” end = “100” step = “2”>

<c:set var = “sum” value = “${sum + i}” />

</c:forEach>

< c:foreach items=”${VoList}” var=”Vo” varStatus=”status”>

${status.current}<br/>     <!– 현재 아이템 –>

${status.index}<br/>        <!– 0부터의 순서 –>

${status.count}<br/>        <!– 1부터의 순서 –>

${status.first}<br/>           <!– 현재 루프가 처음인지 반환 –>

${status.last}<br/>           <!– 현재 루프가 마지막인지 반환 –>

${status.begin}<br/>        <!– 시작값 –>

${status.end}<br/>           <!– 끝값 –>

${status.step}<br/>          <!– 증가값 –>

< /c:forEach>

[출처] <c:forEach> 태그|작성자 Fourleaf

⑩ forTokens

– 문자열을 주어진 구분자(delimiter)로 분할

– 기본형

<c:forTokens items=”반복할 객체명”

delims=”구분자”

begin=”반복할 시작값”

end=”반목 마지막값”

step=”증가값”

var=”변수명”

varStatus=”별도의 변수”

– 예제

<c:forTokens var=”color” items=”빨강색,주황색.노란색.초록색,파랑색,남색.보라색” delims=”,.”>

color : <c:out value=”${color}” /><br>

</c:forTokens>

⑪ import

– 웹 어플리케이션 내부의 자원 및 http, ftp와 같은 외부에 있는 자원에 대해 접근

– 기본형

<c:import url=”읽어올 URL”

var=”읽어올 데이터를 저장할 변수명”

scope=”변수의 공유 범위”

varReader=”리소스의 내용을 Reader 객체로 읽어올 때 사용”

charEncoding=”읽어온 데이터의 캐릭터셋 지정” />

⑫ redirect

– response.sendRedirect()를 대체하는 태그로 지정한 다른 페이지로 이동

– 기본형

<c:redirect url=”이동할 URL” />

⑬ url

– 쿼리 파라미터로 부터 URL 생성

– 기본형

<c:url var=”생성한 URL이 저장될 변수명”

value=”생성할 URL”

scope=”변수의 공유 범위” />

⑭ param

– 기본형

<c:param name=”파라미터 명”

value=”파라미터 값” />

<c:url var=”registrationURL” value=”/customers/register”>

<c:param name=”name” value=”${param.name}” />

<c:param name=”country” value=”${param.country}” />

</c:url>

<c:set var=”temp” value=”Hello!&nbsp;World” />

<c:out value=”${ temp }” default=”value is null”/><br>

<c:out value=”${ temp }” default=”value is null” escapeXml=”false” /><br>

<c:out value=”${ temp2 }” default=”value is null” /><br>

<c:remove var=”timezone” scope=”session”/>

<c:set var=”timezone” scope=”session”>CST</c:set>

<c:out value=”${cookie[‘tzPref’].value}” default==”CST”/>

function#

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

${fn:substring(name, 1, 10)}

fn:contains(string, substring)

string이 substring을 포함하면 true 리턴.

fn:containsIgnoreCase(string,substring)

대소문자에 관계없이, string이 substring을 포함하면 true 리턴.

fn:endsWith(string, suffix)

string이 suffix로 끝나면 true 리턴.

fn:escapeXml(string)

string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드로 바꿔준 뒤 문자열 리턴.

fn:indexOf(string,substring)

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 내의 문자열을 separator에 따라 나누어서 배열로 구성해 리턴.

fn:startsWith(string, prefix)

string이 prefix로 시작하면 true 리턴.

fn:substring(string, begin, end)

tring에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분

(end 인덱스에 있는문자 포함)의 문자열을 리턴.

fn:substringAfter(string, substring)

string에서 substring이 나타나는 이후의 부분에 있는 문자열을 리턴.

fn:substringBefore(string, substring)

string에서 substring이 나타나기 이전의 부분에 있는 문자열을 리턴.

fn:toLowerCase(string)

string을 모두 소문자로 바꿔 리턴.

fn:toUpperCase(string)

string을 모두 대문자로 바꿔 리턴.

fn:trim(string)

string 앞뒤의 공백(whitespace)을 모두 제거하여 리턴.

fmt#

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

  • 국제화
    • <fmt:message>
    • <fmt:setLocale>
    • <fmt:setTimeZone>
    • <fmt:bundle>
    • <fmt:setBundle>
    • <fmt:param>
    • <fmt:requestEncoding>
  • 포맷팅
    • <fmt:timeZone>
    • <fmt:setTimeZone>
    • <fmt:formatNumber>
    • <fmt:formatDate>
    • <fmt:parseNumber>
    • <fmt:parseData>
    • <fmt:parseNumber>

jstl fmt로 날짜보여줄때, pattern attribute에 의한 날짜 표현 방식들

pattern=”yyyy-MM-dd aa h:mm:ss”

2007-12-13 오전 9:36:48

pattern=”yyyy-MM-dd aa hh:mm:ss”

2007-12-13 오전 09:36:48

pattern=”yyyy-MM-dd H:mm:ss”

2007-12-13 9:36:48

pattern=”yyyy-MM-dd HH:mm:ss”

2007-12-13 09:36:48

<fmt:setLocale value=”fr_CA” scope=”session”/>

<fmt:setTimeZone value=”Australia/Brisbane” scope=”session”/>

<fmt:formatDate value=”${blogEntry.created}” dateStyle=”full”/>

<c:out value=”${blogEntry.title}” escapeXml=”false”/>

<fmt:formatDate value=”${blogEntry.created}” pattern=”h:mm a zz”/>

<fmt:formatNumber value=”0.02″ type=”currency” currencySymbol=”원”/>

<fmt:formatNumber value=”9876543.61″ type=”number”/>

[type=”{number|currency|percent}”]

<fmt:parseDate value=”${usDateString}” parseLocale=”en_US” type=”both” dateStyle=”short” timeStyle=”short” var=”usDate”/>

sql#

<%@ taglib uri=”http://java.sun.com/jsp/jstl/sql” prefix=”sql” %>

  • 데이터베이스 접근
    • <sql:query>
    • <sql:update>
    • <sql:setDataSource>
    • <sql:param>
    • <sql:dataParam>

xml#

<%@ taglib uri=”http://java.sun.com/jsp/jstl/xml” prefix=”x” %>

  • 코어 xml 액션
    • <x:parse>
    • <x:out>
    • <x:set>
  • xml 흐름 제어
    • <x:if>
    • <x:choose>
    • <x:when>
    • <x:otherwise>
    • <x:forEach>
  • 변환 액션
    • <x:transform>
    • <x:param>

JSTL forEach 에서 변수 2개 이상 사용하기

JSTL 반복문인 forEach 문에서 변수 2개이상 값을 반복하는 방법을 알아보겠습니다.

<c:forEach var=”vo” items=”${value}” begin=”0″ end=”${result_size }” varStatus=”status”>

${vo.dto}

</c:forEach>

다음과 같이 jstl 을 사용하여 반복 하는 쉬운 예입니다.

2개 이상 값을 반복 하고 싶다면..

<c:forEach var=”vo” items=”${value}” begin=”0″ end=”${result_size }” varStatus=”status”>

${vo.dto}

${add_value[status.index].add_dto  }

</c:forEach>

위에 빨간 부분을 추가 해주시면 됩니다.

list 에 담긴 변수를 하나씩 꺼내 올수가 있습니다.

[status.index] 이 내용은 현재 반복 횟수를 나타내 줍니다.

그럼 우리가 자바 에서 쉽게 사용하는 value[] 배열 형태를 출력해 주신다고 생각하면 되겠습니다 .^^

이상 끝 !

JSTL 문자열 자르기

JSTL 관련 내용을 자바스크립트 카테고리에 적고 있네요 , ㅠ 조만간 jstl 카테고리를 따로 만들어야 겠습니다.
forEach로 밑에와 같이 리스트를 뿌려줄때

 <c:forEach items=”${List}” var=”data” varStatus=”status”>
<c:out value=”${data.nm}”/>
</c:forEach>

아래와 같이  <c:choose> 문을 추가해주고 자르는 구문을 적어주면 된다.
( java에서 쓰이는 substring 을 그대로 사용가능하다. 여기서는 14글자보다 클경우 13자리까지 표기하고 뒤에 점(…) 을 붙였다)

 <c:forEach items=”${List}” var=”data” varStatus=”status”>
<c:choose>
           <c:when test=”${fn:length(data.nm) > 14}”>
            <c:out value=”${fn:substring(data.nm,0,13)}”/>….
           </c:when>
           <c:otherwise>
            <c:out value=”${data.nm}”/>
           </c:otherwise>
          </c:choose>
</c:forEach>

c 태그를 쓰기위해서는 아래의 taglib를 추가해 주어야하고

 <%@ taglib uri=”http://java.sun.com/jstl/core_rt” prefix=”c” %>

글자를 자를때 쓰이는 fn 태그를 쓰려면 아래와같이 c 와 더불어 추가해주어야 한다

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

JSTL 태그 for:each 속성 varStatus=”status”

<c:foreach> 태그 상태 속성 입니다.

속성을 이용해서 제어하면 좀더 쉽게 제어할수있습니다.

< c:foreach items=”${RESULT}” var=”RESULT” varStatus=”status”>

${status.current}<br/> <!– 현재 아이템 –>

${status.index}<br/>        <!– 0부터의 순서 –>

${status.count}<br/>        <!– 1부터의 순서 –>

${status.first}<br/>           <!– 현재 루프가 처음인지 반환 –>

${status.last}<br/>           <!– 현재 루프가 마지막인지 반환 –>

${status.begin}<br/>        <!– 시작값 –>

${status.end}<br/>         <!– 끝값 –>

${status.step}<br/>         <!– 증가값 –>

< /c:forEach>

for:each 태그의 상태를 제어함으로써, 접근이 용이해집니다.