繁体   English   中英

没有重定向到web.xml中指定的页面

[英]no redirect to page specified in web.xml

在我的JSF应用程序中,每当发生异常时,它应该显示一个JSF页面,我设计该页面向用户显示发生了错误,但是没有发生这种情况,这是一个大问题。

我的web.xml的一部分

    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/faces/error.jsf</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/faces/error.jsf</location>
   </error-page>

在ajax请求期间发生异常时,或者在响应已提交时发生异常时,可能会发生这种情况。

ajax请求的异常需要由自定义ExceptionHandler处理。 OmniFaces有一个FullAjaxExceptionHandler ,它使用标准的Servlet API错误页面机制。

无法处理响应提交时的异常,因为响应的一部分已经发送到客户端,这是一个不可逆转的点。 只能通过web.xml的以下上下文参数增加响应缓冲区大小来避免它:

<context-param>
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
    <param-value>65535</param-value>    
</context-param>

上面的示例将其设置为64KB,它应该是您最大页面的大小。 这样,在大小达到64KB或完成时,响应将不会被提交。 这样,容器将能够在发生异常时更改对错误页面的响应。


具体问题无关 ,您可以在错误页面配置中重叠。 异常隐式地始终为状态500,并且您指向相同的错误页面。 所以带有java.lang.Exception的错误页面1是超级的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM