多くの人がこれに似た問題を抱えていることを知っています。もう一度投稿して申し訳ありませんが、うまくいかないことがあると思います。
で使用Spring 3.0.5
していfreemarker 2.3.14
ます。基本的に、わかりやすいエラー メッセージをユーザーに表示したかったのです。
@Controller("exceptioncontroller")
public class ExceptionController {
private static Logger logger = Logger.getLogger(ExceptionController.class);
@RequestMapping(value = "/site/contentnofoundexception")
public String throwContentFileNotFound(){
boolean exception = true;
if(exception){
throw new ContentFileNotFoundException("content ZZZ123 not found");
}
return "errortest";
}
@ExceptionHandler(value = ContentFileNotFoundException.class)
public String handleFileNotFoundException(ContentFileNotFoundException ex, Model model) {
model.addAttribute("msg",ex.getErrorMessage());//this message is never passed to the error view. msg is always null
return "error";
}
}
//same issue for handleException action which uses ModelAndView
@ExceptionHandler(value = Exception.class)
public ModelAndView handleException(Exception ex){
logger.error(ex);
ModelAndView mv = new ModelAndView();
mv.setViewName("error");
String message = "Something Broke. Please try again later";
mv.addObject("msg", message);
return mv;
}
// Custom Exception class
public class ContentFileNotFoundException extends RuntimeException {
private String errorMessage;
public ContentFileNotFoundException(String message) {
this.setErrorMessage(message);
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}
したがって、各ケースhandleFileNotFoundException
またはhandleException
アクションは問題なく呼び出されますが、error.ftl
ビューにメッセージを送信してユーザーに表示することはできません。設定する必要があるものはありますか?
事前にご協力いただきありがとうございます