当前位置: 首页 > 知识库问答 >
问题:

Bean验证组序列不工作

周越泽
2023-03-14

我希望先用groups指定的注释。class一起激发,然后再进行second.class验证。我不明白为什么用组指定的验证没有被激发。

有人能给我指路吗。

@GroupSequence({MyForm.class, OrderedChecks.class})
public class MyForm {

  @NotBlank
  @Size(min = 2, max = 40)
  @Pattern(regexp = "^[\\p{Alnum} ]+$", groups = First.class)
  @UniqueName(groups = Second.class)//Custom validation
  private String name;

  @NotBlank
  @Size(min = 2, max = 40)
  private String url;

  @NotBlank
  @Size(max = 100)
  private String imagePath;

  //Custom Validation
  @CheckContent(acceptedType = <someString>, allowedSize=<someval>, dimensions=<someval> groups = Second.class)
  private MultipartFile image

...
}

@GroupSequence(value = {Default.class, First.class, Second.class})
public interface OrderedChecks {}

@Controller
@RequestMapping(value = "/myForm")
public class MyFormController {

    @RequestMapping(method = POST)
    public String completeSignUp(@Valid @ModelAttribute("myForm") final MyForm myForm,
                            BindingResult result, RedirectAttributes redirectAttributes, Model model) {

        if(result.hasErrors()) {
            model.addAttribute(companyDetailsForm);
            //ERROR_VIEW="myForm";
            return ERROR_VIEW;
        }
       // Doing something else.
      return <success view>;
   }
}

共有1个答案

戚俊人
2023-03-14

使用Spring的@validated而不是@valided。这将允许您指定组并控制序列。

将控制器方法更改为:

@RequestMapping(method = POST)
public String completeSignUp(@Validated(OrderedChecks.class) @ModelAttribute("myForm") final MyForm myForm,
                        BindingResult result, RedirectAttributes redirectAttributes, Model model) {
...
}

注意,在MyFormbean之上不需要@groupsequence({myform.class,orderedchecks.class})

 类似资料:
  • 环境 Glassfish 3.1.2内置Hibernate-Validator 4.2。

  • 我正在使用: PrimeFaces 6.1 JSF:2.2.10 javax.validation:1.1.0.final 验证程序IMPL:hibernate-validator 5.0.1.final GAE:1.9.52 以下是使用后端bean进行CSV(客户端验证)的示例:https://www.primefaces.org/showcase/ui/CSV/bean.xhtml 我现在得到

  • 波姆。xml就是这样。在spring boot starter web中,它已经具有hibernate验证程序依赖性。 类请求 ################################################################################## 控制器 我错过什么了吗?验证不起作用。我是学习者。有人能帮我吗?

  • 我有一个JSF2应用程序,但我无法对JSF ManagedBean属性进行@email验证。 这是我的堆栈: GlassFish 3.1.1 Mojarra 2.2.9/JSF 2.2 null 我的代码: 托管bean: 备注: null 谢谢你。

  • 从上面的示例中我的理解是,如果我将传递给验证器,那么只有和用于和用于只被验证?(标有数字1、2、3) 我理解对了吗?我没有留下任何没有属性的字段。所以没有默认组。

  • 我想验证社会安全号码是否存在于数据库中。这是我的验证器。 在Validator中,我有一个@EJB userDao,我有一个方法此方法: 但是当我执行此方法时,我有一个错误: 警告:StandardWrapperValve[面向Servlet]:PWC1406:Servlet。servlet Faces的service()servlet引发了异常java。pl.ePrzychodnia处的lang