2015-06-25 5 views
0

Я пытаюсь обработать ошибку состояния HTTP 400. Я думаю, что это происходит из-за несоответствия типа. Так, например,
http://localhost:8080/app/info.htm?id=123 работает в то время как
http://localhost:8080/app/info.htm?id=abc нет.Java Spring: как обрабатывать статус HTTP 400?

@RequestMapping(value = "/info", method = RequestMethod.GET, params = "id") 
public String getInfo(@RequestParam("id") Integer id, Model model) { 
    // get info object via service and show it 
    // model.addAttribute("infoObj", infoObj); 

    return "info"; 
} 

Есть ли способ справиться с этим и вернуть, например. на странице index.jsp, если возникла эта ошибка?

+0

Capture 'id' с помощью' Object' – Arpit

+0

Хорошо, что может быть путь, но я думаю, что это было бы очень безвкусный, потому что в принципе вы могли бы сделать это при каждом отображении контроллера не используя никогда унаследованные классы. – baris1892

ответ

1

Из чего я понимаю, что ошибка 400 заключается в том, что запрос не мог быть понят сервером из-за искаженного синтаксиса. Это означает, что id работает хорошо с int, но не с строками.

У этого есть способ, который позволяет перенаправить страницу на определенную страницу, если ошибка произошла.

вам нужно сделать некоторые конфиги в файле web.xml. вы можете сделать следующее:

<error-page> 

    <error-code>400</error-code> 
    <location>/index.html</location> 
</error-page> 
+0

После перезагрузки сервера несколько раз, это сработало для меня сейчас, спасибо! – baris1892