このように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を使用してみました。しかし、私は自分の問題に対してさまざまな解決策を試し、解決策をグーグルで検索しました。しかし、私はそれを解決することができませんでした。
それで、何か提案をお願いできますか...