728x90
반응형

자바에서 받아온 변수를 JSTL을 사용해서 출력, 수정 등 컨트롤할 수 있다.

JSTL을 이용해서 받아온 변수를 수정하거나 다루는방법을 정리해본다.

 

<c:set>에는 property, scope, target, value, var 5개의 속성을 사용할 수 있다.

 - property : 프로퍼티 설정

 - scope : 변수가 저장된 스코프이며, page, request, session, application 4가지 속성값을 가질 수 있고, 선언하지 않아도 기본값으로 page가 설정된다.

 - target : 프로퍼티를 설정할 빈 또는 맵

 - value : 변수에 넣을 값

 - var : 변수명

 

1. 변수 선언하기 <c:set>

<!-- 기본선언 -->
<c:set var="item1" value="computer">

<!-- 출력 -->
${item1}

<!-- scope사용, 미선언시 기본값 "page" -->
<c:set var="item1" value="computer" scope="request">

 

2. 변수 삭제하기 <c:remove>

<!-- 해당 변수 삭제 -->
<c:remove var="item1"/>

<!-- 
해당 스코프의 변수 삭제
*스코프 선언하지 않을경우 모든스코프의 해당변수삭제
-->
<c:remove var="item1" scope="request"/>

 3. 변수 출력하기 <c:out>

<!-- 변수 출력1 -->
<c:out value="${item1}"/>

<!-- 변수 출력2 (item1의 값이 null일시 "item"으로 출력) -->
<c:out value="${item1} default="item"/>

<!-- 변수 출력3 -->
${item1}

 

이렇게 JSTL 변수 기본 사용법을 마무리하고, 응용까지 해보자.

 

1. 변수값 변경

<!-- 변수 선언 -->
<c:set var="item1" value="computer"/>
<c:set var="item2" value="mouse"/>
<c:set var="tmp" value="${item1}"/>

${item1} <!-- 결과 : computer -->
${item2} <!-- 결과 : mouse -->

<!-- 변수값 바꾸기 -->
<c:set var="item1" value="${item2}"/>
<c:set var="item2" value="${tmp}"/>

${item1} <!-- 결과 : mouse-->
${item2} <!-- 결과 : computer-->

 

2. Map 변수선언 및 사용

<c:set var="myMap">
    <c:catch>
        <%
            Map<String, String> map = new HashMap<String, String>();
            map.put("key1", "value1");
            map.put("key2", "value2");
            out.print(map);
        %>
    </c:catch>
</c:set>

<c:forEach var="entry" items="${myMap}">
    Key: ${entry.key}, Value: ${entry.value}
</c:forEach>

위 코드에서는 <c:set> 태그를 사용하여 "myMap"이라는 이름의 변수를 선언하고,

JSP 페이지 내에서 Java 코드를 실행하여 Map 타입의 객체를 생성하고,

이 객체를 "myMap" 변수에 할당한다.

그 후 <c:forEach> 태그를 사용하여 "myMap" 변수에 저장된 Map 타입의 객체를 반복문으로 순회하며,

각각의 키와 값을 출력한다.

즉, 변수를 선언할 때 Map 타입을 사용할 수 없지만, 변수에 Map 타입의 객체를 할당하여 사용하는 것은 가능하다.

728x90
반응형

+ Recent posts