[英]web.xml configuration to redirect to login page after session timeout in jsf
[英]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.