1

アプリケーションで Spring SimpleMappingExceptionResolver を使用しています

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
   <property name="exceptionMappings">
      <map>
         <entry key="Exception" value="error.htm"/>
      </map>
    </property>
    <property name="defaultErrorView" value="error.htm" />
</bean>

私のエラーハンドラもシンプルです

@Controller
@RequestMapping("error.htm")
public class ErrorController {


    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView getErrorReport(HttpServletRequest request) {

        return new ModelAndView("/WEB-INF/jsp/error.jsp"); 
        }
    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView getErrorPostReport(HttpServletRequest request,HttpServletResponse response) {
        TreeMap<String,Object> map=new TreeMap<String,Object>();
        map.put("isDataChange", true);
        map.put("isBigError", true);
        return new ModelAndView(JSONView.RenderObject(map, response));
        }

}

エラー コントローラーで例外メッセージと例外スタック トレースを出力する (または電子メールで送信する) にはどうすればよいですか?

前もって感謝します

アップデート

返信いただきありがとうございます。コンソールだけでなく、jsp にもスタック トレースを出力したいと考えています。また、ErrorController 自体のオブジェクトにアクセスして、その情報を使用してログを電子メールで送信できるようにしたい (一部の呼び出しは ajax ベース (POST を使用) であるため)、error.jsp はそこでは役に立たないため、アクセスする方法が必要です。その情報はコントローラー自体にあります)。

4

1 に答える 1

4

getErrorReportメソッドは jsp ページを返す以外に何もしないため、Bean 宣言で返すことができます。

<property name="defaultErrorView" value="/WEB-INF/jsp/error.jsp" />

そしてページでは、exceptionモデルオブジェクトにアクセスできます:

<c:forEach items="${exception.stackTrace}" var="element">
    <c:out value="${element}">
</c:forEach>

コメントで述べたように。

于 2012-04-05T08:51:54.077 に答える