Core Tag Library 안에 변수를 설정하고 삭제하는 set 태그와 remove 태그에 대해서 실습해본다.
set 태그는 다음과 같은 속성을 갖는다.
- var : 변수의 이름을 설정한다.
- value : 변수에 값을 설정한다.
- target : Bean 클래스나 Map 클래스를 목표로 지정하여 값을 할당할 수 있게 한다.
- property : target로 설정된 클래스의 속성을 지정한다.
- scope : 변수가 영향을 끼칠 수 있는 범위를 지정한다. page, request, session, application
변수를 하나 설정 하고 그 변수에 값을 할당해보면,
<c:set var="x" value="Hello!World"/>
<c:out value="${ x }" />
var을 통해 x라는 변수이름을 지정해주고 그 값에 Hello!World를 할당 해준 후 out태그로 출력한다.
△ 변수선언 후 화면출력
target 속성은 property속성과 함께 사용된다. target을 통해 Map 또는 여타 Bean 클래스를 지정해주고 property에 키값 또는 속성의 이름을 지정한다. 그리고 value속성을 이용하여 값을 할당하면 그값은 target에 지정된 클래스에 값이 설정된다. 예를 들어 map을 이용하여 사용해보면 다음과 같다.
<jsp:useBean id="map" class="java.util.HashMap" />
<c:set value="helloworld!" target="${ map }" property="keyString" /><br>
<c:out value="${ map }" /><br>위의 소스를 입력하여 실행해보면 결과는 다음과 같다.
△ 지정한 Map클래스에 property 값을 키로 하여 value가 설정된 모습
이제 set 태그의 마지막인 scope를 둘러볼 차례다. scope 속성은 set으로 설정한 변수가 영향을 미칠 유효 범위를 설정한다.
설정값으로는 page, request, session, application등을 지정할 수 있고 기본값은 page다. scope의 사용법을 익히기 위해 다음
과 같이 소스를 생성한다.
//coreOther.jsp
<c:set var="x" value="scopetest" scope="session" />
<a href="../JSP/core.jsp">move core.jsp</a>
//core.jsp
<c:out value="${ x }" default="scope is page" />
△ coreOther페이지에는 scope 속성의 값이 session인 x가 설정되 있다.
위와 같이 소스를 입력해서 coreOther.jsp에서 링크를 통해 core.jsp페이지로 이동하게 되면
core.jsp페이지에는 x를 선언하거나 값을 할당하지 않았어도 coreOther.jsp의 x의 유효범위가 session이기 때문에
값이 정상적으로 출력된다.
△ core 페이지에는 변수가 없지만 이전 페이지에 선언된 session 범위의 변수를 출력할 수 있다.
이제 set 태그의 실습을 마치고 remove 태그를 둘러본다. remove 태그는 set으로 선언된 변수를 삭제한다.
remove태그는 다음과 같은 속성을 가진다.
- var : 삭제할 변수 이름을 설정한다.
- scope : 삭제할 변수의 유효범위를 설정한다.
앞서 사용했던 소스중 core.jsp 다음과 같이 수정한다.
<c:out value="${ x }" default="scope is page" /><br>
<c:remove var="x" scope="session" />
<c:out value="${ x }" default="scope is page" /><br>
변수가 삭제되어 다음과 같은 결과가 나타난다.
△ remove 태그를 사용하기전에는 정상적으로 x값을 출력하지만 remove되면 null로 인식되어 기본값이 출력된다.