2014-10-21 7 views
0

Struts 1을 사용하고 있으며 각 요청에서 매개 변수의 URL 만 정리하고 싶습니다. 예를 들어, 요청 struts, 요청시 querystring을 정리 하시겠습니까?

, 상기 순방향

public ActionForward search(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response)throws Exception{  
request.setAttribute("RESULT","PERU"); 
return mapping.findForward("home"); 
} 

myapp.com/view.do?method=search의 URL이 동일한 (myapp.com/view.do?method=search).

그 후, 나는이 작업을 수행 :

public ActionForward search(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response)throws Exception{  
request.setAttribute("RESULT","PERU"); 
ActionForward af = new ActionForward(mapping.findForward("home")); 
af.setRedirect(true); 
return af; 
} 

내가 URL을 얻을 : myapp.com/home.jsp을 미세! 그러나 나는 속성 ("RESULT")을 잃는다.

"리디렉션"을 사용할 때 Struts 1이 새로운 요청을하면 모든 속성이 손실됩니다.

다른 어떤 형태로든 ActionForward에서 URL을 정리할 수 있습니까?

+0

봐 리디렉션하기 전에 저장 세션 속성을 같은 mapping.findForward("home")을 반환 할 수 있습니다, 예를 들어 Tuckey 재 작성 필터가 있습니다. 기본적으로 당신은 내가 생각하는 거꾸로 문제를보고 있습니다. – developerwjk

+0

Tuckey를 구현하고 싶지는 않지만 ActionForward 만 변경하고 싶습니다. – YanOner

+0

리디렉션 중입니다. 그러면 브라우저가 * 새 요청 *을하도록 지시하므로 요청에 포함 된 모든 내용이 손실됩니다. –

답변

0

집에 페이지를 재 지정하려면 단순히 다음

public ActionForward search(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response)throws Exception{  
    request.setAttribute("RESULT","PERU"); 


    return mapping.findForward("home"); 
} 
+0

하지만 URL의 QueryString을 정리하지는 않습니다. – YanOner

0

당신이 URL 재 작성에

public ActionForward search(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response) throws Exception {  
    request.getSession().setAttribute("RESULT","PERU"); 
    ActionForward af = new ActionForward(mapping.findForward("home")); 
    af.setRedirect(true); 
    return af; 
} 
+0

이 문제는 세션의 속성을 정리하는 다른 방법이 매우 복잡합니다. 제 생각에는, JSP로드시 URL을 수정해야합니다. – YanOner

+0

다른 방법은 요청을 리디렉션 할 때까지 자체 요청 속성을 사용해야합니다. –