gpt4 book ai didi

jsf-2 - JSF 2.1错误处理

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

在JSF 2.1中处理错误的正确方法是什么?我看过很多文章,它们提出了不同的建议,但我猜想大多数都是针对JSF的先前版本的。对于显示某些错误的某些错误页面,我只需要基本的错误处理,对于所有其他错误,仅需要常规的错误页面即可。我发现2.1可以将以下内容放入web.xml中:

<error-page>
<error-code>404</error-code>
<location>/faces/error.xhtml</location>
</error-page>

这个对吗?引发错误的正确方法是什么?它与:
throw new WebApplicationException(Response.Status.NOT_FOUND);

使用上述方法,错误将传播到servlet,并将其记录在服务器中。有没有一种方法可以处理错误而不会引发异常,该异常会传播到servlet?

最佳答案

Is there a way to handle the error without throwing an exception which would propagate to the servlet?



您可以为此使用 ExternalContext#responseSendError()
externalContext.responseSendError(HttpServletResponse.SC_NOT_FOUND, "some message");
facesContext.responseComplete();

请注意,这并非特定于JSF 2.1。这对JSF 2.0及更早版本同样适用。还要注意,这种做法通常不是处理 异​​常的常规做法(例如,您实际上抓到了一个;错误页面不是由于未进行任何预检查而导致的预检查失败)。通常,您只需抛出异常和/或通过在JSF action方法中将其重新声明为 throws来释放它,并在 <error-page><exception-type>中让 web.xml对其进行处理。仅JSF ajax请求的异常处理需要自定义的 ExceptionHandler实现,但这是另一回事。

关于jsf-2 - JSF 2.1错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028533/

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