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