JSTL 의 변수 설정기본 정보와 예제들

자바(JAVA)

JSTL 의 변수 설정기본 정보와 예제들

 

개발환경 : JSTL1.1, JDK 1.5, window XP


JSTL 사용시 JSP 페이지에서 페이지 범위에 맞는 변수 설정을 해야 될때가 있다.

주로 연산을 해서 결과값을 저장하고 보여주기 위한 용도로 많이 쓰이는데

<c:set> 태그가 그것이다.

JSP setAttribute()와 같은 역할을 하며(page, request, session, application)

범위의 변수(속성)을 설정한다.

 

(1) 기본형태

 

<c:set> 태그의 기본형은 다음과 같다.

<c:set var="varName"

value="value"

target="targetObjectName"

property="propertyName"

scope="{page|request|session|application}" />

 

(2) 태그의 속성값

 

<c:set> 태그의 속성값에 대한 설명이다.

var 속성 : 속성값으로 변수명

value 속성 : var 속성의 속성값으로 지정한 변수의 값

target 속성 : 속성값으로 자바빈 객체명이나 Map 객체명

property 속성 : target 속성에 해당하는 프로퍼티명

scope 속성 : 변수(속성)의 공유 범위(유효기간) page, request, session, application

속성값 중 하나가 온다. 생략 시 기본적으로 page가 선택된다.

# request : 클라이언트가 서버에 요청하고 응답할때 까지의 생명주기 동안 객체들을

저장하고 유지한다. 서버는 이러한 호출을 처리하기 위해 HTTP 요청이 있을때 마다

javax.servlet.http.HttpServletRequest 인터페이스를 구현한 객체를 생성한다.

저장형태는 키/값의 쌍으로 저장되며 관리함수의 종료는 다음과 같다.

public void setAttribute(String name, Object obj); // 저장

public Object getAttribute(String name); // 호출

 

# session : 다중 페이지 요청시 사용자를 구별하기 위해 세션을 사용하는데

그 세션이 유지되는 동안 객체들을 저장하고 유지한다. 웹 컨테이너는

javax.servlet.http.HttpSession 인터페이스를 구현한 객체를 생성해 관리한다.

저장형태는 키/값의 쌍이며 일정기간이 지나가면 소멸된다. 주로 회원의 접속관리에

많이 쓰인다.

 

# application : 어플리케이션의 생명주기와 같이 한다. 그러므로 모든 클라이언트와

어플리케이션에서 접근이 가능하다. javax.servlet.ServletContext 인터페이스를 구현한

객체를 생성한다. 이 객체는 어플리케이션이 처음 시동될 때 실행된다.

이곳은 주로 어플리케이션에서 공통으로 공유해될 내용을 저장한다.

 

# page : JSP 페이지와 같은 생명주기를 가진다. JSP 페이지가 생성될 때 자동으로

생성되며 다른페이지로 이동하면 사라진다. javas.servlet.PageContext 에 저장되며

객체를 생성한 JSP 페이지를 통해서만 접근이 가능하다.

 

(3) <c:set> 태그의 다양한 예제

 

기본형태인 varName 변수의 값으로 value를 설정했고, varName 변수의

공유범위는 현재 페이지 이다.

<c:set var="varName" value="${value}" />

<c:set var="varName" value="${20}" />

 

● square 에 서버에서 넘어온 param 값으로 값을 배가 시키는 연산 예제이다.

<c:set var="square" value="${param['x'] * param['x']}"/>

값을 하나 증가시켜 저장한 예제이다

<c:set var="varName" value="${value + 1}" scope="request" />

 

● body 형태의 태그를 사용해 값을 저장하는 것도 가능하다.

body 안에서 만들어진 값은 value 옵션값에 저장된다.

<c:set var="timezone" scope="session">CST</c:set>

body 사용시 <c:out > JSTL 태그와 같이 사용하여 기본값으로 셋팅하는

형태도 가능하다.

<c:set var="timezone" scope=="session">

   <c:out value="${cookie['tzPref'].value}" default=="CST"/>

</c:set>

 

targetObjectName 객체의 propertyName 프로퍼티의 값을 value로 설정했다.

<c:set value="${value}" target="targetObjectName" property="propertyName" />

Posted by 녹두장군

댓글을 달아 주세요