Java @Valid failure时自动返回到输入表单
我的控制器中有以下方法:Java @Valid failure时自动返回到输入表单,java,validation,spring-mvc,bean-validation,Java,Validation,Spring Mvc,Bean Validation,我的控制器中有以下方法: @RequestMapping(value = "/status", method = RequestMethod.POST) public String update(@Valid StatusForm statusForm, BindingResult result) { if(result.hasErrors()) { return "statusForm"; } //do stuff when there are
@RequestMapping(value = "/status", method = RequestMethod.POST)
public String update(@Valid StatusForm statusForm, BindingResult result) {
if(result.hasErrors()) {
return "statusForm";
}
//do stuff when there are no errors
return "dashboard";
}
在这些方法中,似乎有很多都有重复的代码块:
if(result.hasErrors()) {
return "statusForm";
}
有没有办法避免在发生验证错误时插入此块并自动重定向回POST请求的来源?可以从多个页面访问相同的操作,因此您必须以某种方式配置错误视图。例如,在struts中,有一个xml文件描述每个操作的输入jsp。可能会创建一个包含视图id的注释,并实现一个用于处理此逻辑的方法
目前在代码中执行此操作的方法有一个优点。它允许您在操作方法中进行额外的验证,可能检查数据库中的一些值或一些更复杂的业务规则,并以统一的方式处理这些错误。同一操作可以从多个页面访问,因此您必须以某种方式配置错误视图。例如,在struts中,有一个xml文件描述每个操作的输入jsp。可能会创建一个包含视图id的注释,并实现一个用于处理此逻辑的方法
目前在代码中执行此操作的方法有一个优点。它允许您在操作方法中进行额外的验证,可能检查数据库中的一些值或一些更复杂的业务规则,并以统一的方式处理这些错误。在控制器处理程序方法中,确保BindingResult参数紧跟在command参数之后。在控制器处理程序方法中,确保BindingResult参数紧跟在command参数之后。我来自Struts和Struts2,因此我的问题是这样的!我理解附加验证的价值,但在许多不需要附加验证的简单情况下,这将是一个很好的选择。我来自Struts和Struts2,因此我的问题的原因!我理解附加验证的价值,但在许多不需要附加验证的简单情况下,这将是一个很好的选择。