我正在处理一个使用 facelets 作为 View 技术的 JSF2/Spring3/JPA2 项目。
javax.faces.DEFAULT_SUFFIX
是 .xhtml
并且 Faces Servlet
的 url-pattern
是 *.xhtml
我们也在使用 prettyfaces,但这似乎与我将在下面解释的问题无关。
我们在 Tomcat 7 上。
我们决定显示自定义 404 错误页面,并在 Web 根目录下创建了一个名为 error404.xhtml
的页面。我们还在 web.xml
中配置为:
<error-page>
<error-code>404</error-code>
<location>/error404.xhtml</location>
</error-page>
现在,当我尝试输入 http://localhost:8084/myapp/some-non-existing-folder
时,我得到了 404 页面和预期的 404 响应。
但是当我尝试输入 http://localhost:8084/myapp/some-non-existing-page.xhtml
我从 Tomcat 得到一个空白页面,没有错误,并且响应标题是 200 OK。
我们有点卡在这一点上并且一无所知,因为没有任何输出、日志和错误可以为我们指明任何方向。
谢谢
最佳答案
这是否类似于您的应用程序的登录页面,或者您是否正在尝试深层链接该页面或导航至该特定页面。因为它类似于未找到的页面并且您正在尝试访问第一个链接是否有效很好。但是,对于第二个http://localhost:8084/myapp/some-non-existing-page.xhtml.There可能是异常产生了。所以如果你能写一个自定义的异常处理程序并将页面定向到你需要的目的地。这个问题就可以解决。
关于tomcat - JSF 2 自定义 404 错误页面不会与具有配置的 facelet 扩展的不存在页面一起显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258938/