- 리절트 타입 Dispatcher 와 Redirect 의 차이
예) 기본 리절트 타입 설정(type="dispatcher") 기본타입이므로 생략 가능
<action name="LoginAction" class="action.LoginAction">
<interceptor-ref name="params"/>
<result name="success" type="dispatcher">/jsp/loginSuccess.jsp</result>
</action>
예) Redirect 리절트 타입 설정(type="redirect)
<action name="LoginAction" class="action.LoginAction">
<interceptor-ref name="params"/>
<result name="success" type="redirect">/jsp/loginSuccess.jsp</result>
</action>
- 두 리절트 타입의 차이점
① redirect 리절트 타입
- JSP 에서 response.sendRedirect(" "); 메서드를 호출한 것과 같은 효과를 낸다.
- 같은 효과가 모냐고 물으신다면...
redirect 리절트 타입은 리다이렉트할 URL 을 응답으로 웹 브라우저에 보낸다.
URL 로 새롭게 서버와 연결이 되므로 request 가 새롭게 생성되는 것을 의마한다.
웹 브로우저에 나타나는 URL도 바뀐다.(마지막 redirect 로 설정한 URL 이 표시됨.)
② dispatcher 리절트 타입(기본타입 - 생략가능)
- dispatcher 타입은 request 가 유지된다. 서버와 새롭게 연결이 되는것이 아니므로 처음 접속했던 request 정보를 가진다.
그 뜻은, redirect 타입처럼 새로 request 를 생성하는 것이 아니라 요청처리를 다른 웹 리소스로 위임하는 것이다.
따라서, 웹 브라우저 상의 요청 URL 이 바뀌지 않는다.
※ 이건 구지 테스트 할 필요가 없을 것 같다. 액션 처리 후 리절트 페이지에서 URL 이 바뀌냐 안바뀌냐의 차이일뿐이니깐
dispatcher 이면 페이지에서 지정한 action 페이지 URL 이 보일것이고,(위의 예를 들자면 action.LoginAction)
redirect 이면 actino 처리 후 result 에 지정한 경로가 보일 것이다.(/jsp/loginSuccess.jsp)
'공부 > STRUTS2' 카테고리의 다른 글
STRUTS_[struts2 아키텍처 & Intercept] (0) | 2012.11.20 |
---|---|
STRUTS_[체인 리절트를 활용한 액션 체인] (0) | 2012.11.19 |
STRUTS_[implements Action 에서 도메인 오브젝트] (0) | 2012.11.08 |
STRUTS_[Struts2 요소] (0) | 2012.11.02 |