1

我在 web.xml 中为 HTTP 404 错误配置了错误页面,如下所示

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

Faces Servlet 配置如下

<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 映射配置为

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

仍然没有呈现 commandButton。我了解我的错误页面无权访问 FacesContext 或未通过 Faces Servlet。我知道这是一个小问题,但无法弄清楚可以做什么。根据谷歌搜索的建议,我也尝试过使用 .xhtml 和 .jsf 。但是没有运气,我尝试了不同的解决方案来解决我的问题并搜索了解决方案。但我无法解决它。

所以能不能给点建议...

4

0 回答 0