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" />
'자바(JAVA)' 카테고리의 다른 글
이클립스(Eclipse) SWT 샘플 프로젝트 실행 (0) | 2012.09.20 |
---|---|
이클립스(Eclipse) 로 SWT 설치후 프로젝트 개발 준비하기 (0) | 2012.09.20 |
Spring 환경에서 JSON 사용시 한글 Encoding 에러 처리 (0) | 2012.09.04 |
Java 를 알기위한 기본 용어 정리와 관계도 (1) | 2012.03.18 |
weblogic.xml 설정 스크립트에 대한 내용 (0) | 2010.08.10 |
스트럿츠 (Struct) 기반 xml 을 WAS 재구동없이 자동으로 로드하기 (0) | 2010.08.07 |
자바 프로젝트 jar -> exe 로 바꿔주는 JSmooth (12) | 2010.08.02 |
자신만의 filter class 만들어서 적용하기 (1) | 2010.08.02 |