Java Spring mvc验证
如何在jsp中显示验证错误消息,而不返回新的ModelAndView对象 当我返回一个新的ModelAndView时,我能够得到错误消息,但我的应用程序要求我使用控制器的重定向返回相同的jsp页面 当我使用redirect时,我将被重定向到jsp页面,但我不会得到错误消息Java Spring mvc验证,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,如何在jsp中显示验证错误消息,而不返回新的ModelAndView对象 当我返回一个新的ModelAndView时,我能够得到错误消息,但我的应用程序要求我使用控制器的重定向返回相同的jsp页面 当我使用redirect时,我将被重定向到jsp页面,但我不会得到错误消息 因此,我希望在用于将表单数据发送到控制器的同一个jsp页面中显示错误消息,如果BindingResult有错误,请刷新属性并重定向。如果你想在重定向url中使用像id这样的值,比如redirect:/doctor/editPa
因此,我希望在用于将表单数据发送到控制器的同一个jsp页面中显示错误消息,如果BindingResult有错误,请刷新属性并重定向。如果你想在重定向url中使用像id这样的值,比如redirect:/doctor/editPatient/{id},你应该将它添加到重定向属性中,如下所示。您可以这样做:
@RequestMapping(value = "/doctor/doEditPatientDetails", method = RequestMethod.POST)
public String editPatientDetails(Model model, @ModelAttribute(value = "user") @Valid User user,
BindingResult result, RedirectAttributes attr, Principal principal) {
if (null != principal) {
if (result.hasErrors()) {
attr.addFlashAttribute("org.springframework.validation.BindingResult.user", result);
attr.addFlashAttribute("user", user);
attr.addAttribute("id", user.getId());
return "redirect:/doctor/editPatient/{id}";
}
}
.
.
.
return "redirect:/doctor/patients";
}
}
然后在另一种方法中,检查闪烁的属性:
@RequestMapping(value = "/doctor/editPatient/{id}", method = RequestMethod.GET)
public String showEditPatient(Model model, @ModelAttribute("id") String id, Principal principal) {
if (null != principal) {
Credential credentials = credentialsRepo.findByUsername(principal.getName());
User user = userRepo.findOne(id);
if (null == user || null == credentials.getUserId()
|| !Objects.equals(user.getDoctorId(), credentials.getUserId())) {
return "redirect:/doctor/patients";
}
//this is used for redirected errors
if (!model.containsAttribute("user")) {
model.addAttribute("user", user);
}
.
.
.
}
return "/doctor/editPatient";
}
看一看谢谢我会设法让你回来