2
私は春mvcにユーザー登録アプリケーションを持っています。 ユーザークラスを保存するとき、通常はユーザーを検証し、UserValidatorクラスに従って保存しますが、同じユーザーを編集する場合、同じ方法で検証できません。エンドレスループに進みます。私は編集ボタンを押したときに 春mvc編集時にユーザーが検証できない
@RequestMapping(value = {"/edit-user-{id}"}, method = RequestMethod.GET)
public String editUser(@PathVariable Long id, ModelMap model) {
User user = userService.findById(id);
if (!user.getUsername().equals(context.getUserPrincipal().getName())) {
return "login";
}
model.addAttribute("userForm", user);
model.addAttribute("edit", true);
return "registration";
}
@RequestMapping(value = {"/edit-user-{id}"}, method = RequestMethod.POST)
public String updateUser(@Valid User userForm, BindingResult bindingResult, ModelMap model, @PathVariable Long id) {
model.addAttribute("edit", true);
model.addAttribute("success", "User " + userForm.getFirstName() + " " + userForm.getLastName() + " updated successfully");
userValidator.validate(userForm, bindingResult);
if (bindingResult.hasErrors()) {
return "registration";
}
userService.updateUser(userForm);
return "registrationsuccess";
}
は誰も助けてください編集するときにケースを
@RequestMapping(value = "/registration", method = RequestMethod.GET)
public String registration(Model model) {
model.addAttribute("userForm", new User());
return "registration";
}
@RequestMapping(value = "/registration", method = RequestMethod.POST)
public String registration(@ModelAttribute("userForm") User userForm, BindingResult bindingResult, HttpServletRequest request) {
userValidator.validate(userForm, bindingResult);
if (bindingResult.hasErrors()) {
return "registration";
}
userService.saveUser(userForm);
securityService.autologin(userForm.getUsername(), userForm.getPasswordConfirm());
LOGGER.info("user with username %s successfully registered", userForm.getUsername());
return "redirect:/welcome";
}
、このいずれかをされて保存するときに、このような場合は、このコードで何が間違っている、それは何もしません、それは無限ループに陥るようです。