gpt4 book ai didi

jsf - 如果FileNotFoundException,则web.xml错误页面不起作用

转载 作者:行者123 更新时间:2023-12-03 08:03:23 24 4
gpt4 key购买 nike

我在海关错误页面及其异常类型方面遇到一些问题。
我在web.xml中有此错误页面;

<error-page>
<exception-type>java.io.FileNotFoundException</exception-type>
<location>/faces/error.xhtml</location>
</error-page>

当我单击链接并且JSF文件不存在时,会发生此错误。我的问题是发生此错误时,网页无法重定向到我的 error.xhtml页面。

这是怎么引起的,我该如何解决?

最佳答案

仅当您实际请求的URL与FileNotFoundException的URL模式匹配时,才会在FacesServlet上显示此错误页面。因此,假设FacesServlet映射到*.jsf上,那么在Mojarra确实抛出/somenotexistent.jsf的子类的情况下打开FileNotFoundException将确实与您的错误页面匹配。

但是,如果您请求的URL与FacesServlet的URL模式不匹配,则该请求将由另一个servlet处理,通常是容器自己的DefaultServlet。如果资源不存在,则通常将返回404而不是引发异常。

您还想添加另一个错误页面来解决这个问题:

<error-page>
<error-code>404</error-code>
<location>/faces/error.xhtml</location>
</error-page>
<error-page>
<exception-type>java.io.FileNotFoundException</exception-type>
<location>/faces/error.xhtml</location>
</error-page>

但是,为防止这种重复,您还可以考虑使用 servlet filter来捕获来自 FileNotFoundExceptionFacesServlet的任何实例,然后正确返回404。JSF实用程序库 OmniFaces已经具有这样的过滤器 the FacesExceptionFilter 。这样,您最终只能得到错误代码404上的错误页面。

关于jsf - 如果FileNotFoundException,则web.xml错误页面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13516400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com