首页 > 解决方案 > Spring MVC 5.*:使用 Validator 进行向导表单验证

问题描述

我正在创建一个多页表单应用程序。我想使用 Validator 接口来验证用户提供的内容。

问题:这个https://mkyong.com/spring-mvc/spring-mvc-handling-multipage-forms-with-abstractwizardformcontroller/方法在 Spring MVC 5.2.* 方面仍然有效吗?

Ofc,我们应该暂时忘记 AbstractWizardFormController。

标签: spring-mvcspring-validator

解决方案


并回答我自己的问题:您不必这样做。通常验证器会在页面切换之前捕获错误。基本上,需要像这里所说的那样实现验证器https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#validator。然后将其绑定到控制器

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.setValidator(<validaotrs_variable_name>);
    }

然后在 @ModelAttribute("myobjectnameintemplate") MyPojo myPojo 上使用 @Validated。

这就对了。

如果想要一次验证页面,那么我认为有必要单独运行验证方法。为此,我在stackoverflow上找到了一些答案:

  1. 可以使用@Valid 和验证组(休眠)
  2. validate() 中基于当前页面或其他内容的简单切换案例
  3. 在一个正在填充的对象中嵌套对象,以及此处描述的多个验证器https://docs.spring.io/spring/docs/5.2.6.RELEASE/spring-framework-reference/core.html#validator

推荐阅读