私の要件は、Spring3.0とHibernateValidatorを使用してフォームのサーバー側検証を実行することです。AJAX呼び出しを使用してフォームを送信していることを忘れないでください。私のコントローラークラスコードは次のとおりです。
public ModelAndView generatePdfReport(@ModelAttribute("reports") @Valid ReportsCommand model, BindingResult result, ModelAndView modelAndView,
HttpServletRequest request, HttpServletResponse response) throws Exception {
if (result.hasErrors()) {
throw new BindException(result);
}
else{
...
}
アップデート...
@ExceptionHandler(BindException.class)
public @ResponseBody String handleException(BindException e,HttpServletRequest request, HttpServletResponse response)
{
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return e.getMessage();
}
これは、コントローラーに配置したハンドラーメソッドです。@ ResponseBodyアノテーションを使用しましたが、JSON形式ではなくhtml形式で応答が表示されています...コードの何が問題になっていますか。以下はフィールドIです。検証しています
@Size(min = 2, max = 3, message = "calltype must between 2 to 3 Characters.")
private String callType;
サイズを3以上にすると、ifに入り、例外がスローされます。必要なのは、この例外を処理してjson応答を返したいということです。@ ExceptionHandlerを使用してこれを実行できる可能性がありますが、実行しないでください。または、この問題を解決するための他の解決策も大歓迎です。