ejbeexception之后的JSF重定向



我使用JSF与JPA。我的错误处理是由一个全局异常处理程序完成的,如果发生任何错误,它将被触发。在这个处理程序中,我只执行重定向到error.xhtml。

除了JPA处理程序之外,这工作得很好。如果@EJB jpa处理程序产生错误,在我的情况下,我将其作为EJB异常。在这种情况下,jsf重定向不起作用。

FacesContext.getCurrentInstance().getExternalContext().redirect("/error/");

但是我没有得到任何错误信息。我认为这与一些生命周期问题有关,但我不知道如何解决它。我只是想实现jpa和jsf的全局错误处理,它将始终在一个特定的错误页面结束:(

是否使用jsf机制捕获异常?

如果是,可能JSF错过了那些JPA异常。您可以尝试通过web.xml:

来捕获它们。
<error-page>
       <exception-type>javax.faces.application.ViewExpiredException</exception-type>
       <location>/error_redirect.html</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/error_redirect.html</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error_redirect.html</location>
</error-page>
<error-page>
       <exception-type>java.lang.Exception</exception-type>
       <location>/error_redirect.html</location>
</error-page>
<error-page>
       <exception-type>java.lang.Throwable</exception-type>
       <location>/error_redirect.html</location>
</error-page>

在"error_redirect.html"中,你可以重定向到"/faces/error.xhtml"或其他。

也许你也可以直接将这些条目指向"/error/",但由于某种原因(我不记得了)我使用了这个重定向html:)

相关内容

  • 没有找到相关文章

最新更新