struts2-convention-pluginを使っているときに、
特定の例外が発生したらJSPへフォワードしようと思って、
<global-results> <result name="db-error" type="redirect">/errors/db-error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="foo.bar.DatabaseException" result="db-error"/> </global-exception-mappings>
と書いたのですが、なぜか404エラーになります。
どうやらstruts2-convention-pluginはJSPの直接実行を許さないみたいです。
そこで、次のように書いてみたら動きました。resultのURLの拡張子を、jspからactionへ変更しただけです。
ちなみにアクションクラスは用意していません。あるのはJSPだけです。
<global-results> <result name="db-error" type="redirect">/errors/db-error.action</result> </global-results> <global-exception-mappings> <exception-mapping exception="foo.bar.DatabaseException" result="db-error"/> </global-exception-mappings>
アクションクラスがなくても、JSPだけで動作するみたいですね。知らんかった…