2016-02-11 32 views
0

Hy, 我有一個代碼攔截所有請求(GET & POST),並最終重定向到另一個頁面,並帶有一個表單。 我想,當用戶發佈形式,初始攔截的請求執行重定向後重做原始請求getRequestDispatcher

我的實際代碼:

public void doFilter(ServletRequest originalRequest, ServletResponse res, FilterChain chain){ 
    originalRequest.getRequestDispatcher("/message").forward(request, res); 
} 

...

@RequestMapping("/message", method=GET) 
public void showMessageForm(...){ 
... 
} 
@RequestMapping("/message", method=POST) 
public void messageOk(ServletResponse res, ModelAndView mav){ 
//redirect to the originalRequest. 
    ???? 
} 

的originalRequest既可以是GET或POST 。如果是帖子,我希望表單的內容也可以傳送。

謝謝!

+0

messageOk要做什麼?你是否希望它將它們發送回原來的URL? – Dave

+0

是的。作爲帖子,如果原始請求是POST。 – sab

+0

您不能使用HTTP重定向到POST。但我不確定那是你想要做的。需要更多的信息。你的messageOk處理程序的目的是什麼? – Dave

回答

1

您的messageOk方法需要返回一個頁面,其中包含一個窗體,其中每個字段都帶有隱藏字段+ Ok按鈕。因此,像:

<form method="POST or GET" action="origin url"> 
    <input type="hidden" name="param1" value="value for param1"/> 
    ... for each input ... 
    <input type="hidden" name="paramN" value="value for paramN"/> 
    <input type=submit" value="Continue"/> 
</form> 

這應該工作,只要你沒有被上傳文件的POST。您可能希望在應用程序中考慮更簡單的流程,例如僅在有人登錄時強制此頁面。