如何在spring mvc 3.0中的同一jsp中显示运行时错误消息或sql错误消息

Posted

技术标签:

【中文标题】如何在spring mvc 3.0中的同一jsp中显示运行时错误消息或sql错误消息【英文标题】:how to show Run time error message or sql error message in the same jsp in spring mvc 3.0 【发布时间】:2012-06-21 12:25:12 【问题描述】: 当 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;

【问题讨论】:

【参考方案1】:

如果您想查看 JSP 输出中的错误,请不要使用 System.out.println。相反,将异常堆栈跟踪添加到您在 JSP 中打印出来的模型对象。

类似:

try  
   employeeDao.persist(employees); 
 
catch (EntityExistsException e)  
   model.addAttribute("error", e.getMessage()); 

这样您就可以在 JSP 中看到异常并打印它。您可以通过属性键访问它,如下所示: $error

【讨论】:

我在 catch 块 catch (Exception ex) System.out.println("at line 104"); mav.addObject("isDataSaved" , ex.getMessage()); throw new SpringUtilException(ex, "Failed to add Employee");但我在第 104 行遇到异常错误:org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - 无法调用@ExceptionHandler 添加了更多细节来回答。【参考方案2】:

您是否调试过代码。什么错误意味着 spring 无法调用控制器中的方法,它由于绑定而失败。

1.仔细阅读它说的非法状态异常,异常处理程序无法处理,因为您只处理SpringUtilException

2.其次没有合适的参数解析器检查您的httprequest并验证所有参数是否正确传递映射失败通常在大多数情况下将是日期格式不匹配或数据类型不匹配

【讨论】:

以上是关于如何在spring mvc 3.0中的同一jsp中显示运行时错误消息或sql错误消息的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC - 如何使用 JSP 表更新数据库中的行?

如何使用 Spring MVC 在 JSP 中包含 js 和 CSS

转义 JSP/Spring MVC 中的所有字符串

如何在Spring MVC控制器类中处理两个jsp表单页面

如何在 Spring MVC 中渲染局部视图

ModelAndView没有将模型返回到spring mvc中的JSP