자바(Java)/JAVA 2EE

코어(core) 태그 - 변수 지정과 삭제

본클라쓰 2009. 9. 9. 16:32

코어 태그의 선언은 아래와 같습니다.

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

 JSP 문서 상단에 코어 태그 사용을 선언한 후 문서에서는 '<c: />' 형태로 사용합니다. 코어태그를 사용하면 변수, 흐름제어, URL 등과 관련하여 JSP 문서를 제어할 수 있습니다.

 

 

 

 

 

1. 변수 선언하기

 

 코어 태그를 사용하여 변수를 지정할 때는 set 접미사를 사용합니다. set 접미사는 var 속성에 페이지내에서 사용할 변수명을 작성하고 value 속성에는 해당 변수의 값을 지정합니다. 또한, scope 속성에 값을 주어 page, request, session, application 영역 중 하나의 영역을 지정할 수 있습니다.

 

<c:set var="변수명" value="변수값" scope="영역지정"/>  

또는

<c:set var="변수명" scope="영역지정">변수값</c:set> 

 위와 같은 방법으로 변수를 지정할 수 있습니다. 변수의 값은 value 속성에 지정할 수 있고, 태그 몸체이 지정할 수도 있습니다.

 

 

 

 

2. 변수 제거하기

 

 set 접미사로 지정한 변수를 제거할 때는 remove 접미사를 사용합니다. remove 접미사를 사용할 때 주의할 점은 삭제할 변수의 scope 값이 set 접미사로 지정한 scope 값과 일치해야 합니다. 만약, 일치하지 않는다면 변수는 제거되지 않습니다.

<c:remove var="변수명" scope="영역지정"/>

 

 

 

 

변수를 지정하여 사용하는 예제

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

 

중간 생략

 

<h3>JSTL 변수 선언 예제</h3>

<c:set var="key" value="value"/> 

변수 key 의 값은 "${key}" 입니다.

 

 

[결과

변수 key 의 값은 "value"입니다.

 

 

 

 

 

3. 객체를 변수에 할당하기

 

 target 속성과 property 속성을 사용해 자바빈즈의 프로퍼티값을 지정하거나 Map 객체의 키 값을 지정할 수 있습니다.

<c:set var="member" value="<% new Member() %>"/>

<c:set target="${member} property="name" value="홍길동"/>   // member.setName("홍길동");

 

멤버의 이름은 : ${member.name} 

 

 

[결과

멤버의 이름은 : 홍길동

Map 객체를 지정할 때는 set 태그의 value값을 <% new java.util.HashMap %> 으로 선언합니다.  

 

   

 

 

 

4. 페이지에 값 출력하기

 

 out 접미사를 사용하면 JSP 페이지에서 지정한 변수의 값을 출력할 수 있습니다. JSP의 out.println() 메소드와 같은 작용을 하며 <c:out> 태그에서 다음과 같은 속성을 가질 수 있습니다.

 

<c:out value="값"  default="값이 없을 때 기본적으로 출력할 값" escapeXml="true/false"/>

 

 value 속성의 값은 표현식으로 지정해도 되고, 직접 값을 작성해도 됩니다. 보통 value 속성으로 지정한 값은 문자열로 표현됩니다. default 속성은 value 속성에 지정한 값이 null 일 경우 사용될 값을 지정합니다.. excapexml 속성은 태그 문자를 특수문자로 변환시켜 출력하는 속성이며 true 일 경우 변환된 형태로 출력됩니다. 기본값은 true 입니다.

 

<%
 String testString = "특수문자 테스트 : <abcdef>";

%>


<c:set var="test" value="<%=testString %>" />


<c:out value="${test }" escapeXml="false"/>
<br/>

<c:out value="${test }" escapeXml="true"/>

 

 

[결과]

특수문자 테스트 :
특수문자 테스트 : <abcdef>