방법은... 컨트롤러 역할을 하는 부분에서 뷰단으로 넘어가기 전에 들어온 요청 URL을 request의 attribute로 저장해서 a.jsp에서 뽑아 쓰시거나.. 

request.getAttribute( "javax.servlet.forward.request_uri" ); 
request.getAttribute( "javax.servlet.include.request_uri" ); 

를 사용하시면 됩니다... 

해당 프레임웍에서 최종적으로 뷰 페이지를 호출하는 방식에 따라서 쓰시면 되구요.. 
아마도 forward겠죠..


예를 들어 카트화면이 프레임이나 다른Tiles에 있을경우 리다이렉트가 아니면 화면 변화가 
바로 보이지않는 경우가 있다. 
그리고 이경우 카트에서 선택한 상품을 삭제하더라도 화면상태는 그대로 유지 할경우가 있는데
이경우 인터셉터에서 해당 페이지 주소와 쿼리를 세션에 저정한후 처리 한다. 
방법은 밑과 같이~~

       // action실행
	String result = invocation.invoke();

       // get으로 Request되어 Tiles화면에 표시되는경우 Redirect용 Url를 세션에 보존한다.
        HttpServletRequest request = ServletActionContext.getRequest();
        if ("GET".equals(request.getMethod())) {
        	if (invocation.getResult() instanceof org.apache.struts2.views.tiles.TilesResult) {
        		String redirectUrl = request.getServletPath();
	        	String queryString = request.getQueryString();
	        	if (queryString != null) {
	        		redirectUrl = redirectUrl + "?" + queryString;
	        	}
	        	sessionMap.put(세션보존..);
        	}
		}

	return result;

'Struts2' 카테고리의 다른 글

Struts2에서 예외처리  (0) 2010.08.26
struts.properties , 사용방법  (0) 2010.08.16
Struts2 @Results 에서 params이용 방법  (0) 2010.08.12
Validator 날짜 체크 Action  (0) 2010.08.11
validate money check struts2  (0) 2010.08.10

+ Recent posts