4

次のようにweb.xmlの構成を使用して、カスタムエラー404ページを提供できることを理解しています。

<error-page>  
       <error-code>404</error-code>  
         <location>/NotFound.jsp</location>  
 </error-page>  

ただし、多くのエラーコードWebページは非常に似ていると思います。エラーコードとテキストのみが変更されます。

過剰な数のファイルを減らして再利用するには、通常のHTMLとCSSの優れた機能をすべて備えた汎用ページにパラメーターを渡すと便利です。

私はApacheMyFacesを使用しており、ExceptionHandlerFactory(ここ)について読んだことがありますが、エラーコードのプロビジョニングがないことがわかりました。

エラーコードページをカスタマイズできる絶対的な唯一の方法は、カスタマイズするエラーコードごとに1つ作成し、web.xmlを使用してそれらを接続することです。:-(

4

1 に答える 1

9

エラーページは単なるJSFページである可能性があります。サーブレット3.0対応のコンテナを実行している場合は、グローバルエラーページが表示される可能性があります。

<error-page>  
    <location>/error.jsf</location>  
</error-page> 

サーブレット2.5コンテナ以前を実行している場合、または現時点でグローバルエラーページがまだ実装されていないTomcat 7を使用している場合は、ステータスコードごとに個別のエラーページを指定する必要がありますが、すべて同じエラーページをポイントします。

<error-page>  
    <status-code>404</status-code>
    <location>/error.jsf</location>  
</error-page> 
<error-page>  
    <status-code>500</status-code>
    <location>/error.jsf</location>  
</error-page> 

ステータスコードと例外タイプは、次のようにELで利用できます。

Status code: #{requestScope['javax.servlet.error.status_code']}
Exception type: #{requestScope['javax.servlet.error.exception_type']}

必要に応じて、これに対して条件付きチェックを行うことができます。例外のデフォルトのステータスコードは常に500であることに注意してください。

JSPの後継のFaceletsを使用している場合は、テンプレート作成がさらに簡単になります。

于 2012-05-09T14:45:27.067 に答える