我不知道如何使用@Valid批注将其实现,但是您应该能够利用JSR-303验证来完成此任务。作为一个人为的例子:
public class User { @NotNull(message = "First name can't be blank", groups = {Step1.class, FinalStep.class}) private String firstName; @NotNull(message = "Last name can't be blank", groups = {Step1.class, FinalStep.class}) private String lastName; @NotNull(message = "Email can't be blank", groups = {Step1.class, FinalStep.class}) private String emailAddress; @NotNull(message = "Please provide a valid address", groups = {Step2.class, FinalStep.class}) private Address address; // getters/setters... public interface Step1 {} public interface Step2 {} public interface FinalStep {}}您可以利用JSR-303通过提供标记界面来表示向导步骤来支持验证组这一事实。
然后,不要依赖@Valid批注,而是将Validator实例注入您的控制器并调用:
validator.validate(user, );
在您的processPage方法中(在所链接的问题中引用Controller),然后
validator.validate(user, FinalStep.class);
在您的processFinish通话中。



