在我的春季開機應用程序中。我有用戶類別:春季開機僅使用@valid形式驗證特定屬性
public class User {
private Long id;
@NotEmpty(message="Field is required.")
@Size(max=50, message="Field cannot exceed 50 characters in length.")
private String username;
@NotEmpty(message="Field is required.")
@Size(max=50, message="Field cannot exceed 50 characters in length.")
private String name;
@NotEmpty(message="Field is required.")
@Email(message="Please enter valid email address.")
private String email;
.... getter and setter here....
}
我創建了用戶註冊表單,我在驗證名稱,用戶名和電子郵件。
像這樣:
@RequestMapping(value="/user/register", method= RequestMethod.GET)
public String createUserForm(User user){
return "user/create";
}
@RequestMapping(value="/user/register", method= RequestMethod.POST)
public String createUser(@Valid User user, BindingResult bindingResult){
if (bindingResult.hasErrors()) {
return "users/create";
}
//Here code to save user
return "users/createdSuccess";
}
現在我想創造忘記密碼頁面供用戶使用。忘記密碼頁面只包含電子郵件地址。但是,如果我使用驗證用戶模型,它總會給出錯誤,因爲有名稱和用戶名屬性被添加。
如何忽略名稱和用戶名註釋以忘記密碼頁並僅驗證電子郵件地址。
@RequestMapping(value="/account/forgot", method= RequestMethod.GET)
public String forgotPassForm(User user){
return "users/forgotPassword";
}
@RequestMapping(value="/account/forgot", method= RequestMethod.POST)
public String resetPass(@Valid User user, BindingResult bindingResult){
if (bindingResult.hasErrors()) {
return "users/forgotPassword";
}
return "users/passwordEmailSent";
}
我改變了這個:public String resetPass(@ModelAttribute(「email」)@Validated User user,BindingResult bindingResult){....但是得到錯誤:BindingResult和bean名稱'email'的純樸目標對象都沒有請求屬性 – VK321
看鏈接,你應該添加一些依賴關係,並提供您的自定義驗證器 – ema
我不想創建自定義驗證,這是問這個問題的全部要點。 – VK321