tomcat - JSF 2 自定义 404 错误页面不会与具有配置的 facelet 扩展的不存在页面一起显示

标签 tomcat jsf-2 http-status-code-404 facelets

我正在处理一个使用 facelets 作为 View 技术的 JSF2/Spring3/JPA2 项目。

javax.faces.DEFAULT_SUFFIX.xhtml 并且 Faces Servleturl-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/

相关文章:

java - Raspberry Debian Squeeze 中的安全管理器 Tomcat 7

java - RichFaces 4.2 转发到新页面,h :commandLink

java - 如何在 JSF2/EL 2.2 中使用可选参数列表调用方法

tomcat - 为具有凭据支持的 tomcat 应用程序启用 CORS

java - 配置 tomcat 并托管 java web 应用程序

python - 当 django 查找静态文件时,我不断收到 404 错误

amazon-s3 - Amazon S3 - 尽管 GetObject 允许,但返回 403 错误而不是 404

json - 这个 Json 结果应该返回 404 还是 200?

java - 如何在jsp中通过方法 `get()`访问对象?

jsf-2 - 本地化资源包中的枚举值