【发布时间】:2014-09-24 09:39:24
【问题描述】:
一旦用户输入他的电子邮件,我需要通过电子邮件发送忘记密码链接,该电子邮件应该只经过验证。我只有一个 POJO 具有属性电子邮件、密码、确认密码。
同样,当用户点击发送的链接时,会显示一个输入密码和确认密码的表单,现在只需验证这两个属性。我只有一个自定义验证器来执行该验证。
那么有什么办法可以做到吗?以下是我的代码
User.java
public class User {
private String name;
private String password;
private String confirmPassword;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
MyController.javasn-p
@RequestMapping(value="/forgot", method=RequestMethod.POST)
public ModelAndView forgotPasswordSubmit(@Valid @ModelAttribute("User") User,BindingResults result, user,HttpServletRequest request) {
ModelAndView model = new ModelAndView("pwd/forgot/index");
// to check user information has any error
if(results.hasErrors())
return model;
model.addObject(user);
boolean check = service.validate(user);
if (check == true)
return model;
String status = service.sendPasswordResetLink(accountId, user, request);
if (status.equals("success")) {
return new ModelAndView("pwd/forgot-res/index");
}
return model;
}
当用户点击请求发送时
@RequestMapping(value="/reset", method=RequestMethod.POST)
public ModelAndView resetPasswordSubmit(@ModelAttribute("linkId") String linkId,
@Valid @ModelAttribute("user")User user,BindingResult results,HttpServletRequest request) {
String view = "pwd/reset-success/index";
if(results.hasErrors())
return model;
String status= this.service.updateUserPassword(linkId,user.getPassword(),user.getConfirmPassword(),request);
if(!status.equals("success"))
return new ModelAndView("pwd/reset-failed/index");
//if Reset Failed
// view = "pwd/reset-failed/index";
ModelAndView model = new ModelAndView(view);
return model;
}
【问题讨论】:
-
这行不通!!你向我们展示了你为此做了什么。你失败的地方。你不能通过说
I have a urgent requirement..来分配任务。
标签: java spring validation spring-mvc