这是通过验证组来实现的,Spring对此提供了支持。您正在使用 @Valid 批注,但是应该使用 @Validated 才能使用验证组:
public ModelAndView submitSearch(@Validated(value={OrderChecks.class}) @ModelAttribute("SearchStringBackingObject") final SearchStringBackingObject backingObject
OrderChecks.class:
@GroupSequence(value={NotEmptyGroup.class, LengthCheckGroup.class, DiacriticeCheckGroup.class, EmailValidationGroup.class, EmailLengthValidationGroup.class, Email3EntriesValidationGroup.class, EntityAlreadyExistsValidatorGroup.class, Default.class}) public interface OrderChecks {}
在支持对象内部:
@NotBlank(groups=NotEmptyGroup.class)@Length(max=25, groups=LengthCheckGroup.class)@DiacriticeCheck(groups=DiacriticeCheckGroup.class)private String firstname="";
@GroupSequence中的每个条目都是一个接口。
编辑
因此,如果您希望首先验证帐户名,则可以为其创建一个接口:
public interface AccountNameGroup{}
然后在Validation Group界面内,这将是第一个界面:
@GroupSequence(value={AccountNameGroup.class, the rest of groups})public interface OrderOfGroups{}And of course inside the Controller you specify the @Validated annotation with the OrderOFGroups interface.
这样,将首先验证帐户名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)