1

このようにweb.xmlでHTTP 404エラーのエラーページを構成しました

<error-page>
<error-code>404</error-code>
<location>/Common/error.jspx</location>
</error-page>

Facesサーブレットは次のように構成されています

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>

私のエラーページ(error.jspx)は次のようになります

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html" xmlns:trh="http://myfaces.apache.org/trinidad/html"
      xmlns:tr="http://myfaces.apache.org/trinidad" xmlns:c="http://java.sun.com/jsp/jstl/core">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<html>
  <head>
    <title>Error Page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  </head>
  <body id="b1">

      <h4 style="color:red">An Error Occured. Please click Back button or Signout.</h4>
      <input type="button" value="Back" onclick="history.back()"/>
      <tr:commandButton id="cb1" text="SIGN OUT" action="exit" actionListener="#{Login.LogOut}"/>    
  </body>
</html>

アプリケーションをデプロイして 404 エラーが発生すると、ページに [戻る] ボタンしか表示されないエラー メッセージが表示されます。SingOut ボタンが表示されません。URL を確認したところ、/faces/* パターンに従っています。もう一度確認するために、変更を加え、web.xml でサーブレット マッピングを次のように構成しました。

 <servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/faces/*</url-pattern>
  <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

それでも commandButton はレンダリングされません。エラー ページが FacesContext にアクセスできないか、Faces サーブレットを経由していないことを理解しています。これは小さな問題であることはわかっていますが、何ができるかわかりませんでした。また、グーグルの提案に従って.xhtmlと.jsfを使用してみました。しかし、私は自分の問題に対してさまざまな解決策を試し、解決策をグーグルで検索しました。しかし、私はそれを解決することができませんでした。

それで、何か提案をお願いできますか...

4

0 に答える 0