Java Spring mvc验证

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中显示验证错误消息,而不返回新的ModelAndView对象

当我返回一个新的ModelAndView时,我能够得到错误消息,但我的应用程序要求我使用控制器的重定向返回相同的jsp页面

当我使用redirect时,我将被重定向到jsp页面,但我不会得到错误消息


因此,我希望在用于将表单数据发送到控制器的同一个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";
}

看一看谢谢我会设法让你回来