Как настроить ответ @RequestParam error 400 в Spring MVC - PullRequest
15 голосов
/ 28 января 2012

Есть ли способ настроить то, что отображается, когда требуемый @RequestParam не отправляется обработчику запросов? Я всегда получаю HTTP Status 400 с описанием « Запрос, отправленный клиентом, был синтаксически неправильным (). » в этом случае.

Ответы [ 2 ]

18 голосов
/ 28 января 2012

Да, есть способ, которым вы должны поймать MissingServletRequestParameterException

Вы можете сделать это несколькими способами:

1)

   @ExceptionHandler(MissingServletRequestParameterException.class)
      public String handleMyException(Exception  exception) {
       return "yourErrorViewName";
              }  

2)

<error-page>
    <exception-type>org.springframework.web.bind.MissingServletRequestParameterException</exception-type>
    <location>/WEB-INF/pages/myError.jsp</location>
  </error-page>

Надеюсь, это поможет.

4 голосов
/ 19 сентября 2014

Как я решил свою проблему:

@ResponseBody
@ExceptionHandler(MissingServletRequestParameterException.class)
public Object missingParamterHandler(Exception exception) {
    // exception handle while specified arguments are not available requested service only. it handle when request is as api json service       
    return  new HashMap() {{ put("result", "failed"); put("type", "required_parameter_missing");}};
} 
...