JSF 1.x 通用异常处理
如果我的业务层中出现异常(例如 JDBC 连接 bean 中的 SQL 异常),我如何使用自定义消息将其传播到全局 error.jsp
页面?
If I have an exception in my business layer (e.g. a SQL exception in my JDBC connection bean), how can I propagate it with a custom message to a global error.jsp
page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
JSF 1.x 不提供这种类型的任何隐式错误处理,尽管您可以使用导航规则(假设表单帖子)重定向到错误页面...
...或使用重定向...
我建议查看有关更多详细信息,请参阅 JSF 规范。
错误消息可以根据需要放置在请求范围/会话范围/url 参数上。
假设有一个 Servlet 容器,您可以使用通常的 web.xml 。 xml错误页面配置。
在支持 bean 中,您可以在 运行时异常。
一些 JSF 实现/框架会捕获这些错误(Apache MyFaces/Facelets),因此您必须配置它们不。
JSF 1.x doesn't provide any implicit error handling of this type, though you can redirect to an error page using navigation rules (assuming a form post)...
...or using a redirect...
I recommend looking at the JSF specification for more details.
Error messages can be placed on the request scope/session scope/url parameters, as you like.
Assuming a Servlet container, you can use the usual web.xml error page configuration.
In your backing bean, you can wrap and throw your checked exceptions in RuntimeExceptions.
Some JSF implementations/frameworks will catch these errors (Apache MyFaces/Facelets), so you'll have to configure them not to.
JSF 2 现在有一个处理异常的机制:
http://java.sun.com/javaee/6/docs/api/javax/faces/context/ExceptionHandler.html
The JSF 2 now has a mechanism for handling exceptions:
http://java.sun.com/javaee/6/docs/api/javax/faces/context/ExceptionHandler.html
在 JSF 中向用户显示错误消息的一般方法是使用 FacesMessage:
在 Java 端:
在 JSF(JSP 或 XHTML)页面中,只需使用
页面中的组件以显示错误。The general way to display error message to the user in JSF is to use FacesMessage:
On Java side:
and in the JSF (JSP or XHTML) page, simply use the
<h:messages/>
component in your page in order to display the error.您可以放入
jour jsp/jsf 页面。 在 error.jsp 中,jou 将具有:
isErrorPage="true" 将为您的页面提供另一个隐式对象:异常(与您在 jsp 页面上已有请求和响应的方式相同)。 然后您可以从异常中提取消息。
其他详细信息
You can put
in jour jsp/jsf page. In error.jsp, jou would have:
isErrorPage="true" will give your page another implicit object: exception (the same way you already have request and response on jsp page). You can then extract message from exception.
Additional details
我在站点页面中创建了一个错误页面,并放置了错误的堆栈跟踪
此代码首先将其放在 web.xml 中,
而 jsf 页面有此代码。
请注意,motif 允许您调试堆栈跟踪,以便了解隐藏字段中的异常。
让我们看看这个类是如何定义的,
当您在 facesconfig 文件中完成这个 bean 定义时,该类是如何恢复 StackTrace 并已附加的
,我希望这能起到作用
I made an error page in the site faces and put the stacktrace of the error
This code first put it in the web.xml
While the jsf page had this code
Note that motif lets you debug the stacktrace for an reazon know which is the exception in the hidden field.
Let's see how the class is defined recovers StackTrace
and already attached as you finish this bean definition in the file facesconfig
And I hope that this will serve
我遇到了同样的问题,并找到了描述如何在 JSF2 中使用 ExceptionHandler 的链接:
http://jugojava.blogspot.com/2010/09/jsf-2-exception-handling.html
I came to same problem and found link describing how you can use ExceptionHandler in JSF2:
http://jugojava.blogspot.com/2010/09/jsf-2-exception-handling.html