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

【问题讨论】:

    标签: spring-mvc


    【解决方案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并验证所有参数是否正确传递映射失败通常在大多数情况下将是日期格式不匹配或数据类型不匹配

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2014-09-23
      • 2020-12-20
      相关资源
      最近更新 更多