只要在加载 JSF facelet 期间出现错误,JSF 就会在错误点停止呈现页面并改为显示错误页面(默认行为)。我希望 JSF 继续呈现页面并在页面中显示异常/错误。例如,如果页面正在加载引发异常的“portlet”,那么该异常将在 portlet 中显示为文本。我不希望将整个页面转发到单独的错误页面。
我已经初始化了自己的实现ExceptionHandlerFactory
和ExceptionHandler
实现,并且可以成功迭代ExceptionQueueEvents
。但是,尽管出现错误,我不知道如何指示 JSF 继续加载页面。这甚至是正确的方法吗?ExceptionHandler 是在(如我所想的那样)之后调用还是在处理 facelet 的中间调用?如果之后,有什么我可以做的ExceptionHandler
吗?
我知道我应该:
- 隐藏用户无法访问的部分(我的具体情况与安全性有关,当用户尝试加载他无权访问的内容时。但是,我正在寻找一个全球性的答案)
- 手动处理错误,因此不会引发意外异常
但是,我希望用户能够继续使用系统,尽管出现了一些小组件故障(例如,如果某些新闻提要 portlet 抛出不应阻止用户查看和使用其他内容的错误)。
我正在使用 Mojarra 2.0.2。我觉得这是一个非常容易解决的问题,但我无法弄清楚:(