Action의 Result를 다른 Result로 연계하기 :: 스트럿츠2버젼[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

스트럿츠2버젼
[1]
등록일:2008-03-16 12:07:36 (0%)
작성자:
제목:Action의 Result를 다른 Result로 연계하기

어떠한 동작이 있다고 하자. 이러한 동작이 마친 뒤에는 특정 동작으로 자동으로 연계되는게 필요한 경우가 있다. 예를 들어서 친구 목록에 친구를 추가하고 다시 갱신된 데이터가 반영된 메인 페이지로 가고 싶다고 하는 경우가 있다. 여기서 주의할 점은 갱신된 데이터가 반영되어 있어야 한다는 것이다. 이는 Control에 의해서 Model 정보다 반영되고 그 뒤에 View로 이동되어야 한다는 것이다. 그렇다면 우리는 이제 result를 다른 action으로 전송 시켜야 하는 것이다.

이 를 위해서 result에 type을 선언하게 되는데, 이 때 forward가 필요한 경우에 type값을 chain으로 지정하도록 한다. 또한 redirect를 원하는 경우에는 redirect-action 값을 type으로 지정하도록 하면 된다. 앞 서 예를 들었던 경우와 같이 주소록을 갱신하고 그 결과를 반영한 메인으로 이동하고자 하는 경우에 아래와 같이 하면 된다.


<action name="update" class="com.thinkfree.s1.action.contact.UpdateContact">
            <result name="success" type="chain">main</result>
</action>

참고로 forward와 redirect의 차이에 대해서는 다음 내용을 참고하도록 하자.

Forward

-          client가 웹브라우저에서 요청시 Forwardclient 에게 보여지지 않는 페이지에서 작업을 하게 된다. 그러므로 client는 페이지의 이동을 모르게 되며, URL또한 변경이 되지 않는다.

Client가 요청을 하게 될 때 생성되는 객체는 계속 사용이 가능하며 다른 페이지 에서도 그 객체를 사용할 수 있다 . 


Redirect

-          client가 웹브라우저에서  요청시 Redirectclient에게 페이지의 이동을 모두 노출시킨다. client가 요청시 새로운 객체를 생성하며 기존의 객체는 사라지게 되며, URL이 페이지 이동시마다 변경된다. 이전의 전송값을 이동한 페이지에서 사용 불가능하다 .


[본문링크] Action의 Result를 다른 Result로 연계하기
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=2784
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.