redirectAction


redirectAction 리절트 타입의 동작 원리는 result 리절트 타입과 동일하다. result 리절트 타입은 리다이렉트할 URL을 지정하였지만, redirectAction 리절트 타입은 actionName 파라미터를 사용하여 리다이렉트 대상이 될 액션 이름을 지정한다.


<action name="UserRegAction" class="action.UserRegAction">
     <interceptor-ref name="params"/>
     <result name ="success" type="redirectAction">
       <param name="actionName">LoginAction</param>
       <param name="userId">${userId}</param>
       <param name="message">${message}</param>
     </result>
  </action>

<action name="LoginAction" class="action.LoginAction">
    <intercepter-ref name="params"/>
    <result name="success">/jsp/userRegSuccess.jsp</result>
 </action>




<global-results/>


액션 요청의 결과를 이한 result 요소는 action 요소의 자식 요소로 설정한다. 경우에 따라서는 여러개의 action 요소에 동일한 result 요소가 설정되는 경우가 있다.


로그인 페이지나 에러페이작 대표적인 예일것이다. 이런 페이지들이 여러 action 요소에 중복되어 설정되는 것을 피하기 위한  방법으로 global-result를 사용할수있다.


<package name="sample" extends="struts-default">
     <global-results>
          <result name="login">/jsp/login.jsp</result>
          <result name="error">/jsp/error.jsp</result>
     </global-results>
     
     <action name="sample" class"tutorial.SampleAction">
          <result name="success">/jsp/smple.jsp</result>
     </action>
</package>



sample 액션을 수행한후 리턴 코드 값으로 success 를 되돌리면 local result에 정의된 success result 에 의해 sample.jsp를 결과 페이지로 출력한다. 만일 sample 액션의 수행후 리턴 코드 값으로 login혹은 error를 되돌릴 경우에는 일차적으로 결과페이지 localresult에서 찾는다 localresult에서 찾지못하면 패키지 내 정의된 <global-results> 에서 찾는다.

+ Recent posts