【发布时间】:2016-12-04 10:30:28
【问题描述】:
从thymeleaf指南中,我看到了如下代码sn-p:
<ul th:if="${#fields.hasErrors('global')}">
<li th:each="err : ${#fields.errors('global')}" th:text="${err}">Input is incorrect</li>
</ul>
所以,我在想是否有一种方法可以从 Spring MVC 控制器传递错误消息并使用上面的代码在页面上的某处显示错误。
我看到一些在线资源在方法签名上使用了BindingResult,如下所示。
bindingResult.rejectValue("username", "username.notvalid", "Username is not valid");
但是如果控制器不验证任何对象怎么办?我还能使用 bindingResult 吗?
我想我也可以将错误消息作为密钥对添加到模型中,如下所示。
model.addAttributes("error","error message");
但是,我想知道 Spring 控制器中是否有一些标准的错误处理方式。
我应该改用异常处理吗?但是如何将错误消息传递回视图?
谢谢
更新用例:
例如,在方法 A 中,检测到错误如下。
public String methodA (Model m, RedirectAttributes model){
if (error == true){
model.addFlashAttribute("error.message","String");
return "redirect:MethodB";
}
}
public String methodB(Model m){
if(m.containsAttribute("error.message"){
//Way to pass the error to view page for display.
}
}
应该这样处理错误吗?之所以会进行第二个动作,是因为最终的视图页面需要展示一些数据。
【问题讨论】:
标签: java spring-mvc error-handling