1. 일반적인 것

<c:out>

• JSP 의 표현식을 대체

• 간단한 출력에 사용
• out 태그 속성

속성  필수 기본값  설명
value  Y 없음 출력할 내용이나 표현식
default N tag body 에
있는 내용
value 값에 내용이 없는 경우 출력할 내용으로
태그 바디 혹은 속성값 형태로 올수 있음
escapeXml N true 출력할 내용에 <,>,&,’,” 등의 문자를 일반 문자로
변환할지 결정
예) 출력될 내용이 html tag를 포함하면 값을
     false로 해야 태그가 반영된 내용이 화면에 보임.
     만일 true로 하면 태그가 화면에 그대로 보임

• out 태그 형식

body 없는 경우

<c:out value="value" [escapeXml="{true|false}"] [default="기본값"] />

 

body 있는 경우

<c:out value="value" [escapeXml="{true|false}"] />

    기본값

</c:out>


<c:set>

• EL 변수에 값을 설정
• 객체의 멤버 변수값 설정

• 변수에 값을 할당

• value가 null 이면 var에 있는 속성은 제거된다.

• target 표현식이 null이면 컨테이너는 예외사항을 던진다.
• 빈과 같은 객체에 할당하기 위해서는 target 과 property속성을 이용

• scope 속성이 생략될 경우 기본값은 page

• set 태그 속성

속성  필수 기본값  설명
value N 없음 저장할 변수값
target N 없음 값이 저장될 객체명
property N 없음 target 객체의 멤버 변수명
var N 없음 값이 저장될 변수명
scope N page 값이 저장될 범위(page, session, request, application)

• set 태그 형식

Syntax 1: scope 에 해당하는 변수에 속성 값을 정한다.

<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>


Syntax 2: scope 에 해당하는 변수에 body 값을 정한다.

<c:set var="varName" [scope="{page|request|session|application}"]>

    body content

</c:set>


Syntax 3: 속성 값으로 target 객체의 프로퍼티 값을 정한다.

<c:set value="value" target="target" property="propertyName"/>


Syntax 4: body 값으로 target 객체의 프로퍼티 값을 정한다.

<c:set target="target" property="propertyName">

    body content

</c:set>


<c:remove>

• 해당 scope 의 변수(객체) 삭제

• JSP 의 removeAttribute() 와 같은 역할을 한다.

• 해당 scope 에 있는 변수를 제거하는 역할을 한다.

• remove 태그 속성

속성  필수 기본값  설명
var Y 없음 삭제할 변수명
scope N 모든 범위 삭제할 범위

 

<c:catch>

 body 위치에서 실행되는 코드의 예외를 잡아내는 역할을 담당한다.

 var 속성을 지정해서 변수를 선언하면 그 변수에 예외의 내용이 들어가게 된다.



2. 조건

<c:if>

• 조건이 맞는 경우 태그 바디부분 처리.
• 자바의 if 와 유사하지만 else 는 지원하지 않음.

• <c:if> 에서 나온 결과를 varName 변수에 넣고, 나중에 활용이 가능하다.

• 변수의 scope는 임의로 지정할 수 있고, 생략될 경우 기본값은 page 이다.

• if 태그 속성

속성  필수 기본값  설명
test Y 없음 검사할 조건
var Y 없음 test 조건의 결과를 저장할 변수
scope N 모든 범위 변수가 저장될 범위

• if 태그 형식

Syntax 1: Body 없는 경우

<c:if test="testCondition"

var="varName" [scope="{page|request|session|application}"]/>

 

Syntax 2: Body 있는 경우

<c:if test="testCondition"

[var="varName"] [scope="{page|request|session|application}"]>

body content

</c:if>

 

<c:choose>,<c:when>,<c:otherwise>

• switch 문과 유사한 기능.

조건에 문자열 비교도 가능하고 쓰임의 범위가 넓다. 또한 <c:if> 태그에 else 가 없기 때문에 이

   의 대체 기능도 수행한다.
• 하나의 choose 태그에는 여러 개의 when 태그가 존재.

• <c:when> 속성값

속성  필수 기본값  설명
test Y 없음 검사할 조건

• 형식

<c:choose>

    body content

    (하나 이상의 <when> 과 하나 이하의 <otherwise> 서브태그)

    <c:when test="조건">

        body content

    </c:when>

   

    <c:otherwise>

        conditional block

    </c:otherwise>

</c:choose>



3. URL 관련

<c:import>

 웹 어플리케이션 내부의 자원 접근은 물론이고, http, ftp 같은 외부에 있는 자원도 가져와

  서 페이지 내에 귀속시킨다. 자유롭게 가공할 수도 있고, 편집도 가능하다.


Syntax 1: 해당 주소를 바로 출력하거나 String 에 담아놓는다.

<c:import url="url" [context="context"]

        [var="varName"] [scope="{page|request|session|application}"]

        [charEncoding="charEncoding"]>

   <c:param> 서브 태그 위치

</c:import>

 

Syntax 2: 해당 주소의 컨텐츠를 Reader 객체로

<c:import url="url" [context="context"]

        varReader="varReaderName"

        [charEncoding="charEncoding"]>

    varReader 를 사용하는 액션

</c:import>

 

<c:url>

 컨텍스트를 자동으로 추가해서 주소를 자동으로 생성해준다.

context 속성이 지정되었을 경우 value 와 context 의 값은 / 로 시작을 해야된다.

context 속성이 생략되면 당연히 현재의 컨텍스트가 적용된다.

URL 재작성도 가능하다.

 

Syntax 1: Body 없는 경우

<c:url value="value" [context="context"]

        [var="varName"] [scope="{page|request|session|application}"]/>

 

Syntax 2: Body 있는 경우 쿼리 스트링 파라메터 지정

<c:url value="value" [context="context"]

        [var="varName"] [scope="{page|request|session|application}"]>

    <c:param> 서브태그

</c:url>


<c:redirect>

response.sendRedirect() 를 대체하는 태그이다.

컨텍스트를 지정해서 다른 컨텍스트로 이동이 가능하다.

<c:url/> 태그와 마찬가지로 context 속성을 지정하면, value 와 context 의 값은 / 로 시

  작을 해야된다.

 

Syntax 1: Body 없는 경우

<c:redirect url="value" [context="context"]/>

 

Syntax 2: Body 있는 경우 쿼리 스트링 파라메터 지정

<c:redirect url="value" [context="context"]/>

    <c:param> 서브태그

</c:redirect>

 

<c:param>

<c:param/> 은 다음과 같이 url 에 바로 붙여서 쓸 수도 있다.


<c:import url="/exec/doIt">

  <c:param name="action" value="register"/>

</c:import>

이 방법은 아래 태그와 같은 효과가 있다.

<c:import url="/exec/doIt?action=register"/>


4. 반복

<c:forEach>

원하는 구간만큼 반복할 수도 있고, 객체를 받아와서 그 객체의 길이만큼 반복할 수도 있다.

begin , end 속성은 시작번호와 끝번호를 지정하고, step 속성을 이용해서 증가 구간을 정할 수

   있다.

var 속성에서 정한 변수로 반복되는 내부 구간에서 사용할 수 있다.

• 컬렉션 객체 접근시 매우 유용함.
• forEach 태그 속성값

속성  필수 기본값  설명
items N 없음 반복을 위한 데이터를 가진 아이템의 Collection
begin N 0 반복 시작 번호
end N Collection 마지막 값 반복 끝 번호
step N 1 반복의 증가분
var N 없음 현재 아이템을 가지고 있는 변수
varStatus N 없음 반복 상태값을 가지고 있는 변수
• forEach 태그 형식

Syntax 1: 객체 전체에 걸쳐서 반복

<c:forEach [var="varName"] items="collection"

           [varStatus="varStatusName"]

           [begin="begin"] [end="end"] [step="step"]>

    body content

</c:forEach>


Syntax 2: 지정한 횟수만큼 반복

<c:forEach [var="varName"]

           [varStatus="varStatusName"]

           begin="begin" end="end" [step="step"]>

    body content

</c:forEach>

 

<c:forEachToken>

• forToken 은 반복문 + StringTokenizer 기능
• forToken 태그 속성값

속성  필수 기본값  설명
items N 없음 반복을 위한 데이터를 가진 아이템의 Collection
delims Y 없음 구분자(delimeter)로 사용할 문자
begin N 0 반복 시작 번호
end N Collection 마지막 값 반복 끝 번호
step N 1 반복의 증가분
var N 없음 현재 아이템을 가지고 있는 변수
varStatus N 없음 반복 상태값을 가지고 있는 변수

• forToken 태그 형식

Syntax

<c:forTokens items="stringOfTokens" delims="delimiters"

[var="varName"]

[varStatus="varStatusName"]

[begin="begin"] [end="end"] [step="step"]>

body content

</c:forEach>


출처 : http://develop.sunshiny.co.kr/208

'Jsp_Html' 카테고리의 다른 글

[Jsp] File Upload  (0) 2010.11.22
[Jsp] JSTL EL함수 정의하여 사용하기  (0) 2010.11.16
[Jsp] JSTL API  (0) 2010.11.16
[Jsp] html meta tag  (0) 2010.11.12
[Jsp] Get과 Post 전송방식  (0) 2010.11.10

+ Recent posts