我在 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 。但是没有运气,我尝试了不同的解决方案来解决我的问题并搜索了解决方案。但我无法解决它。
所以能不能给点建议...