java - @Valid 失败时自动返回输入表单

标签 java validation spring-mvc bean-validation

我的 Controller 中有以下方法:

@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";
}

有没有办法避免必须插入此 block 并在出现验证错误时自动重定向回 POST 请求的来源?

最佳答案

可以从多个页面访问相同的操作,因此您必须以某种方式配置错误 View 。例如,在 struts 中,您有一个 xml 文件来描述每个操作的输入 jsp。可能会创建一个包含 View ID 的注释并实现一个 AnnotationMethodHandlerAdapter。来处理这个逻辑。

当前在代码中执行此操作的方法有一个优点。它允许您在操作方法中进行额外的验证,可能检查数据库中的某些值或一些更复杂的业务规则,并以统一的方式处理这些错误。

关于java - @Valid 失败时自动返回输入表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5271703/

相关文章:

jquery - 防止 <asp :Button> using a jQuery confirmation dialog 上的表单回发

java - Spring Webflow : How to pass a bean from a controller to a flow?(使用输入映射)

java - 要下载哪个 Jetty 发行版才能运行完整的 Spring3.0 应用程序?

java - 如何避免 Apache Solr 中的 Java OutOfMemoryMemory Java 堆空间

java - 如何使用 arg 'T value' 模拟方法?

php - Symfony2 中的 CollectionType 验证

spring-mvc - Spring获取Tomcat参数的方法

java - HHH000342 : Could not obtain connection to query metadata : Access denied for user

java - 使用jython从python访问java类

java - 在 Java 中验证 Maven 值