본문 바로가기
Programming

스트럿츠2 태그 사용을 위한 필수 지식

by Mizix 2009. 10. 1.
반응형
액션, 인터셉터, 밸류 스택과 태그와의 관계
태그는 동적 데이터를 출력하기 디자인되었다. 그림과 같이 액션 클래스와 JSP가 구성되어 있는 경우를 예로 들어보자. 만약 액션 클래스의 postalCode 프로퍼티에 값이 설정된 상태에서 이 액션을 실행하여 comePage.jsp 가 출력되면 처음 입력된 값이 화면의 텍스트 필드 안에출력된다. 이와 같이 출력될 수 있는 것은 액션이 밸류 스택에 저장되고 <s:textfield /> 태그는 밸루스텍에 저장된 postalCode 값을 함께 랜더링하기 때문이다.

비 문자열 속성
HTTP 프로토콜은 텍스트 기반이다. 그러나 어떤 태그는 BOOLEAN 또는 int 같은 비 문자열 타입의 속성을 가진다. 비 문자열 속성을 직관적으로 사용하기 위해 스트럿츠2는 모든 비 문자열 속성을 하나의 표현식으로 받아들인다.
즉, 자바 소스코드에서 boolean, int 등의 변수를 문자열로 변환되서 받아들이는게 아니라 그 타입의 값으로 받아들인다.
그렇기 때문에 jsp에서 문자열로 받아들이기 위해서는
"%{boolean}"과 같이 ""을 붙여서 문자열로 받아들이면 된다.

태그의 value 속성은 객체이다
보통의 경우, 스트럿츠2 태그의 name속성은 액션의 어떤 프로퍼티와 매핑하는지를 말해준다. 따라서 태그의 value 속성은 name 속성과 매핑되는 액션 클래스의 프로퍼티와 같은 타입으로 자동적으로 설정된다. 따라서 value 속성에 정의된 내용을 문자열이 아닌 객체로 다룬다.
value 속성에 설정된 값은 문자열이 아니기 때문에 value 속성에 어떤 것을 성정하더라도 표현식으로 다룬다.

OGNL 이란?
스트럿츠2에서 사용하는 OGNL에 대해 간단한 개요를 소개하겠다.
스트럿츠2는 OGNL 표현식을 사용하기 위해 컨텍스트를 사용한다. OGNL을 다루기 위한 최상위 객체로 맵을 사용한다. 이것을 컨텍스트 맵 또는 컨텍스트라 부른다, OGNL은 컨텍스트 안에 루트 객체를 갖는다. 컨텍스트의 다른 객체를 참조할 때는 '#' 기호를 사용한다.
반응형

'Programming' 카테고리의 다른 글

Java Map(HashMap, TreeMap, Hashtable)  (0) 2010.01.07
파이어폭스 부가기능 오류  (1) 2009.12.13
스트럿츠2  (0) 2009.09.29
Struts2(스트럭츠) 개발환경 구축하기.  (0) 2009.09.25