这是通过验证组实现的,Spring 支持它。您正在使用@Valid注释,但应该是@验证为了使用验证组:
public ModelAndView submitSearch(@Validated(value={OrderChecks.class}) @ModelAttribute("SearchStringBackingObject") final SearchStringBackingObject backingObject
订单检查类:
@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 中的每个条目都是一个接口。
EDIT
因此,如果您希望首先验证帐户名,那么您可以为其创建一个接口:
public interface AccountNameGroup{}
然后在验证组界面中,这将是第一个界面:
@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.
这样帐户名将首先被验证