본문 바로가기

Web For All/Struts

Struts2에서 JSON 사용

  • 1. About json plugin
    • json과 연동하기 위한 스트럿츠2의 플러그인 컴포넌트 입니다.
  • 2. 플러그인 방법
    • A. 기본적인 json 라이브러리(ex. json-lib-2.2.1.jar)와 스트럿츠의 플러그인 라이브러리(jsonplugin-0.21.jar)를 애플리케이션 라이브러리 로 포함합니다.
    • B. json 요청을 처리 하기 위한 액션을 작성할때 아래와 같이 패키지가 json-default를 상속받도록 하고, 해당 액션에서 json 인터셉터와 json 리절트를 사용하도록 합니다.
      • 위와 같이 json 인터셉터와 리절트를 사용하면 액션의 프라퍼티에 json 데이터를 생성하여 넣어주고, 응답에서는 액션의 프라퍼티에 있는 데이터를 json 데이터로 자동으로 변환하게 됩니다.
<package name="gageInfo" extends="json-default" namespace="/user">	<action name="saveUsers" class="user.action.UserAction" method="saveUsers">		<interceptor-ref name="json"/>		<result type="json"/>	</action></package>
  • 3. 팁
    • json 인터셉터는 요청 해더의 content-type 값이 application/json으로 설정되어 있는 경우에만 작동됩니다.
    • json 리절트는 액션의 프라퍼티 중에서 getter가 있는 모든 프라퍼티를 json 데이터로 만들게 됩니다. 만약 해당 요청의 응답에서 json 데이터로 보내고 싶지 않는 프라퍼티는 아래와 같이 설정하면 됩니다.(아래에서는 userList라는 리스트 객체와 user객체의 password 프라퍼티 값은 json 데이터로 랜더링하지 않게 됩니다.
<result type="json">  <param name="excludeProperties">    userList, user.password  </param></result></result>