Difference between @Valid and @Validated in Spring

前端 未结 4 665
深忆病人
深忆病人 2020-11-27 10:00

Spring supports two different validation methods: Spring validation and JSR-303 bean validation. Both can be used by defining a Spring validator that delegates to other dele

4条回答
  •  广开言路
    2020-11-27 10:20

    A more straight forward answer. For those who still don't know what on earth is "validation group".

    Usage for @Valid Validation

    Controller:

    @RequestMapping(value = "createAccount")
    public String stepOne(@Valid Account account) {...}
    

    Form object:

    public class Account {
    
        @NotBlank
        private String username;
    
        @Email
        @NotBlank
        private String email;
    
    }
    

    Usage for @Validated Validation Group
    Source: http://blog.codeleak.pl/2014/08/validation-groups-in-spring-mvc.html

    Controller:

    @RequestMapping(value = "stepOne")
    public String stepOne(@Validated(Account.ValidationStepOne.class) Account account) {...}
    
    @RequestMapping(value = "stepTwo")
    public String stepTwo(@Validated(Account.ValidationStepTwo.class) Account account) {...}
    

    Form object:

    public class Account {
    
        @NotBlank(groups = {ValidationStepOne.class})
        private String username;
    
        @Email(groups = {ValidationStepOne.class})
        @NotBlank(groups = {ValidationStepOne.class})
        private String email;
    
        @NotBlank(groups = {ValidationStepTwo.class})
        @StrongPassword(groups = {ValidationStepTwo.class})
        private String password;
    
        @NotBlank(groups = {ValidationStepTwo.class})
        private String confirmedPassword;
    
    }
    

提交回复
热议问题