处理spring-mvc上的密码确认

Mac*_*rse 2 java spring spring-mvc

我在spring-mvc做了一个用户问题.

我的模型具有以下属性:

private Long id;
private String password;
private String username;
private Collection<Authority> myAuthorities;
private boolean isAccountNonExpired;
private boolean isAccountNonLocked;
private boolean isCredentialsNonExpired;
private boolean isEnabled;
Run Code Online (Sandbox Code Playgroud)

我解决了如何Authority在这个问题中展示课程.

现在我愿意我的表单能够有第二个密码字段来确认用户是否正确输入了密码.

我不想confirmPassword在模型中添加属性,所以我的问题是如何以最好的方式解决这个问题.

编辑:

一切都在使用axtavt的答案,但我错过了一种验证方法.我的控制器中有以下方法,但即使我放置了一个@Validate ApplicationUserFormValidator未调用的方法.

    @RequestMapping(method = RequestMethod.POST)
 public ModelAndView create(Model model,
   @Valid @ModelAttribute ApplicationUserForm applicationUserFrom,
   BindingResult result) {
  ModelAndView modelAndView = new ModelAndView();

  if (result.hasErrors()) {
   modelAndView.setViewName(USER_CREATE_FORM);
  } else {
   modelAndView.setViewName(REDIRECT_TO_USER_LIST);
   modelAndView.addObject(USER_FORM_MESSAGE, USER_FORM_ADD_SUCCESSFUL);
   applicationUserService.save(applicationUserFrom.getUser);
  }

  return modelAndView;
 }
Run Code Online (Sandbox Code Playgroud)

박찬신*_*박찬신 5

在您的applicationUserFrom类中添加confirmPassword,
并在setter中添加check函数,
这是我最好的方法

private String password;
@NotNull(message="not match")
private String confirmPassword;

public void setPassword(String password) {
    this.password = password;
    checkPassword();//check
}   

public void setConfirmPassword(String confirmPassword) {
    this.confirmPassword = confirmPassword;
    checkPassword();//check
}

private void checkPassword() {
    if(this.password == null || this.confirmPassword == null){
        return;
    }else if(!this.password.equals(confirmPassword)){
        this.confirmPassword = null;
    }
}
Run Code Online (Sandbox Code Playgroud)