본문 바로가기
IT/Struts2

OGNL ( Object Graph Navigation Language )

by Jeami 2013. 7. 29.
반응형


스트럿츠2


OGNL 정의

OGNL은 스트럿츠2 의 표현식입니다. 

스트럿츠2는 액션이 실행될 때마다 그 액션을 스택 메모리에 저장하여 "밸류스택"이라는 것을 만드는데요.

액션이 실행되면서 밸류스택에 여러가지 정보가 축적이 되겠죠. 이 정보들을 가져오는 태그로서 OGNL 이라고

명명하여 사용한다는 것입니다. 정의는 이렇게 감으로만 알아두시면 좋을 것 같습니다.

다시말해, 스트럿츠2 만의 태그 사용법이 OGNL 이 되겠습니다.







추천은 블로거에게 큰 힘이 됩니다(로그인 불필요) 보다 나은 정보로 보답 하겠습니다^^








동작원리

(앞서 작성했던 코드를 중심으로 살펴볼 것입니다.   코드참조 ==>   http://v.daum.net/link/48792224

아이디 입력 페이지에서 그 정보를 입력하고 Submit 버튼으로 전달하게 되면, 

파라미터 인터셉터 에 의해서 <s:textfield /> 로 표현된 name 속성값과 일치하는 프로퍼티(속성)을 찾아서

입력했던 그 정보를 셋팅해주게 됩니다.

이 때 getter/setter 로 지정해놓은 setUserid()가 호출되고, 입력했던 아이디 값은 "밸류스택"이라고 하는 메모리 영역 Login.java 액션의 userid 에 저장됩니다.

이렇게 <s:textfield /> 태그의 value 속성의 "%{userid}" 를 통해 밸류스택에 저장되었던 Login.java 액션의 userid에 저장된 값이 출력되게 됩니다.

%{userid}  :  이와 같이 표현된 것이 OGNL 표현식 입니다. 스트럿츠2 에서만 사용되는 표현법이죠.

%{ ... } 괄호 안에 작성되는 값은 bean의 프로퍼티(속성) 값으로 인식을 하게 되는데요. 빈의 속성으로 인식하게 되기 때문에 getter/setter 로 정의해주었던 userid 값을 찾아 가져올 수 있게 됩니다.

=============================================

말이 좀 어려운데요.

스트럿츠는 action이 실행될때마다 액션을 스택에 저장하고, valuStack 에 있는 저장 된 값을 꺼내오는 것은

OGNL 이라는 표현식으로 나타내며 %{....} 이렇게 표현할 수 있겠습니다.




OGNL 이라는 것의 정의는 간단합니다. 계속 말씀드리지만, 스트럿츠2 에서 저장되는 정보들을 추출하고 활용할 떄 쓰이는 표현식으로 생각해두시면 무리가 없을거라고 생각됩니다. 일단은 말이죠..^^

스트럿츠2 태그 라이브러리를 통해 정보를 저장하고 출력하고 넘기고 가져오고 하는 등의 관계를 표현하는 것이 OGNL 표현식!



반응형

loading