2016-02-11 2 views
0

Hy, У меня есть код, который перехватывает весь запрос (GET & POST) и в конечном итоге перенаправляет на другую страницу с формой. Я хочу, чтобы когда пользователь отправлять форму, первоначальный перехвачены запрос выполняетсяredo первоначальный запрос после перенаправления 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, который при загрузке файла. Возможно, вы захотите рассмотреть более простой поток в своем приложении, например, заставляя эту страницу только когда кто-то входит в систему.

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