私はstruts2アプリの開発を学んでいます.カスタム404ページの実装を手伝ってくれてありがとう. 私のアプリケーションでは、
web.xml には次のものがあります。
<error-page>
<error-code>404</error-code>
<location>/jsp/pub/error404.jsp</location>
</error-page>
struts.xml には次のものがあります。
<package name="actions-default" extends="struts-default">
<global-results>
<result name="exception">/jsp/pub/exception.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="exception" />
<exception-mapping exception="java.lang.RuntimeException"
result="exception" />
</global-exception-mappings>
</package>
また、struts.xml で devMode を false に設定
<constant name="struts.devMode" value="false" />
error404.jsp : jsfiddle で jsp ソースを表示するには、ここをクリックしてください
問題:
無効な URL またはマップされていないアクションでアプリケーションをヒットすると、カスタム 404 ページの代わりに次のメッセージが表示されます
"HTTP Status 404 - There is no Action mapped for namespace [/] and action name [invalidurl] associated with context path"
アプリケーション コンソールには、次のように表示されます。
SEVERE: Exception Processing ErrorPage[errorCode=404, location=/jsp/pub/error404.jsp] org.apache.jasper.JasperException: 6 行目で JSP ページ /jsp/pub/error404.jsp を処理中に例外が発生しました
6: <s:url value='/' var="contextPrefix" />
「s」タグをすべて削除し、error404.jsp をプレーンな jsp ページとして作成すると、カスタム 404 ページが表示されます。私はどこで間違っていますか?これを修正するための助けは非常に役立ちます。
前もって感謝します
S