2014-10-21 2 views
0

Я использую Struts 1 и хочу только очистить URL-адрес параметров по каждому запросу.стойки, очистить запрос по запросу?

В запросе, например: myapp.com/view.do?method=search

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

В прямом направлении, 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, отлично !!! Но я теряю атрибут («РЕЗУЛЬТАТ»).

Когда я использую «Перенаправление» Struts 1, сделайте новый запрос, потеряйте все атрибуты.

Любая другая форма очистки URL-адреса в ActionForward?

+0

Посмотрите в URL переписывания, например, с фильтром Tuckey Rewrite. Я думаю, в общем, вы смотрите на проблему назад. – developerwjk

+0

Я не хочу реализовать Tuckey, только хочу внести изменения в ActionForward. – YanOner

+0

Вы перенаправляете, что говорит браузеру сделать * новый запрос *, поэтому все в запросе будет потеряно. –

ответ

0

Если вы хотите перенаправить страницу дома, вы можете просто вернуть mapping.findForward("home") вроде следующего

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


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

Но это не очищает QueryString URL-адреса. – YanOner

0

Сохранить атрибуты сессии, прежде чем сделать перенаправление

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

Проблема этого, другие методы имели бы, чтобы очистить атрибут в сеансе, очень громоздко. Я думаю, у меня будет это изменение URL-адреса при загрузке jsp. – YanOner

+0

Другие методы должны использовать свои собственные атрибуты запроса, пока они не захотят перенаправить запрос. –

Смежные вопросы