0
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"、メソッド = RequestMethod.POST)
    @ExceptionHandler({ SpringUtilException.class })
    public ModelAndView addEmployee(@Valid EmployeeDTO employeeDTO,
            BindingResult 結果) は SpringUtilException をスローします {
        ModelAndView mav = new ModelAndView("従業員");
        if (result.hasErrors()) {
            従業員のリスト = employeeDao.getAllEmployees();
            return new ModelAndView("employee", "employeeList", employees);
        } そうしないと {
            BeanUtils.copyProperties(employeeDTO、従業員);
            System.out.println("addEmployee 従業員!" + 従業員);
            試す {
                employeeDao.persist(従業員);
            } キャッチ (EntityExistsException e) {
                throw new SpringUtilException(e, "Employee Duplicate");
            } catch (例外例) {
                throw new SpringUtilException(例: "従業員の追加に失敗しました");
            }
            // 挿入後、従業員を表示
            従業員1の一覧表示 = employeeDao.getAllEmployees();


            mav.addObject("isDataSaved" , "データは正常に保存されました");
            mav.addObject("employeeList" , employees1);

            mav を返します。

        }
        }

4

2 に答える 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 に答える