2009年8月10日月曜日

OGNL

참조
http://starplatina.tistory.com/126?rchid=BR1http%3A%2F%2Fstarplatina.tistory.com%2F126


에서 property 태그는 value의 값을 OGNL로 평가한다.
#표시가 없는 OGNL 표현식 name은 루트 오브젝트의 property이다.
스트럿츠2에서 루트 오브젝트는 value stack이고 value stack 상단에 액션이 있으므로 "name"은 항상 액션의 property가 된다.
JSP EL의 ${name}과 같다.


루트 오브젝트가 아닌 세션 맵의 user를 참조할 때는 위와 같이 "#"을 붙여서 오브젝트 이름과 프라퍼티 또는 맵의 키를 사용해서 참조한다. 루트 오브젝트의 프라퍼티만 프라퍼티 이름만으로 참조 할 수 있다.
JSP EL의 ${sessionScope.user }와 같다.

스트럿츠 2 태그에서 %{...}가 OGNL의 표현식이다. 즉 %{...}내의 텍스트는 OGNL 표현식으로 평가된다.
%{name}이라 하면 문자열 name이 아니고 name을 OGNL 표현식으로 평가한다..
따라서 %{name}은 액션의 name의 프라퍼티 값이 된다.

콜렉션.{ 조작 }

그리고 새로운 콜렉션이 돌려주어진다.{ }안에서는 #this로 현재 요소를 참조할 수 있다.
예를 들면 문자열의 리스트가 있었다고 해서, 각 요소의 뒤에 " ({문자열장})"와 같은 문자열을 부가한 리스트를
작성하고 싶은 경우는 다음과 같이 쓸 수 있다.

list1 의 작성










[]


결과는[aaa (3)] [bb (2)] [ccc (3)] [dd (2)] [eee (3)] [fff (3)]



[]

결과 : [item20][item300]

Struts2의 각종 파일로 이용할 수 있는 OGNL식에서, in구를 사용하면 콜렉션중에서의 요소의 존재를 간단하게 조사할 수 있다JSP의 경우 다음과 같은 리스트가 있었다고 하면
이 결과는item2:[]

item20:[]

item200:[]

이렇게 된다.item2:[false]item20:[true]item200:[false]TIPS:not in도 있다 넘어온 파라메터의 형이 String 타입이면 xxxx.equals("yyyyyy") 로 표현가능

0 件のコメント:

マイブログ リスト


Jang ki hote

自己紹介