当 catch 块中发生任何异常时,我们如何在同一个 jsp 中显示错误消息,即employee.jsp 以及 jsp 应该是什么样子? 在控制台中收到此错误消息;此错误的含义是什么? 错误:org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - 无法调用@ExceptionHandler 方法:public org.springframework.web.servlet.ModelAndView com.kesava.tutorial.controller.HomeController.addEmployee(com.kesava .tutorial.dto.EmployeeDTO,org.springframework.validation.BindingResult) 抛出 com.kesava.tutorial.util.SpringUtilException java.lang.IllegalStateException:参数 [0] [type=com.kesava.tutorial.dto.EmployeeDTO] 没有合适的解析器 @RequestMapping(value = "/addEmployee", method = RequestMethod.POST) @ExceptionHandler({ SpringUtilException.class }) public ModelAndView addEmployee(@Valid EmployeeDTO employeeDTO, BindingResult 结果)抛出 SpringUtilException { ModelAndView mav = new ModelAndView("employee"); if (result.hasErrors()) { 列出员工 = employeeDao.getAllEmployees(); return new ModelAndView("employee", "employeeList", employees); } 别的 { BeanUtils.copyProperties(employeeDTO, employees); System.out.println("添加员工员工!" + 员工); 尝试 { employeeDao.persist(员工); } 捕捉(EntityExistsException e){ throw new SpringUtilException(e, "Employee Duplicate"); } 捕捉(异常前){ throw new SpringUtilException(ex, "Failed to add Employee"); } // 插入后显示员工 列出employees1 = employeeDao.getAllEmployees(); mav.addObject("isDataSaved" , "数据保存成功"); mav.addObject("employeeList" , employees1); 返回mav; } }
问问题
1473 次
2 回答
0
如果您想查看 JSP 输出中的错误,请不要使用 System.out.println。相反,将异常堆栈跟踪添加到您在 JSP 中打印出来的模型对象。
就像是:
try {
employeeDao.persist(employees);
}
catch (EntityExistsException e) {
model.addAttribute("error", e.getMessage());
}
这样您就可以在 JSP 中看到异常并打印它。您可以通过属性键访问它,如下所示:
${error}
于 2012-06-19T13:24:09.963 回答
0
你调试了代码。什么错误意味着spring无法调用控制器中的方法,它由于绑定而失败。
1.仔细阅读它说非法状态异常,异常处理程序无法处理,因为您只处理 SpringUtilException
2.其次没有合适的参数解析器检查您的httprequest并验证所有参数是否正确传递映射失败通常在大多数情况下会是日期格式不匹配或数据类型不匹配
于 2019-03-04T05:25:01.020 回答