struts-config.xmlのglobal-exceptionsで定義した例外処理

struts1.2.8の話

RequestProcessorを継承したクラスでprocessActionPerformメソッドをオーバーライドして共通処理を書いておくということをしています。オーバーライドしたprocessActionPerformの中の共通処理で例外が発生した場合、struts-config.xmlで定義したglobal-exceptionsで定義した例外処理をしてくれません。struts-config.xmlのglobal-exceptionsで定義した例外処理は、actionクラスで発生した例外を処理するためのルールのようです。

なので下のように、例外が発生したら場合に自分でcatchしてprocessExceptionを呼出すようにしたら、意図通りにglobal-exceptionsで定義した例外処理を行なってくれるようでした。

public class MyRequestProcessor extends RequestProcessor {
protected ActionForward processActionPerform(HttpServletRequest request,
HttpServletResponse response, Action action, ActionForm form,
ActionMapping mapping) throws IOException, ServletException {
try {
//なんか共通処理
commonCheck();
} catch (Exception e) {
return processException(request, response, e, form, mapping);
}
return super.processActionPerform(request, response, action, form, mapping);
}
}

今日はこれで何時間無駄にしただろう。。。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください