【发布时间】:2012-08-17 14:31:21
【问题描述】:
我需要在我的 JSF 应用程序error.xhtml 页面中显示异常堆栈跟踪。我知道用 JSP 页面来做这件事是多么简单。但是对于 JSF 2.0,我遇到了问题。
在我的web.xml 中,我将 JSF 2.0 Facelets 页面定义为错误页面:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/faces/views/error.xhtml</location>
</error-page>
当错误发生时,我会被重定向到此页面。我需要的是在这个 Facelets 页面中显示异常的堆栈跟踪。
我尝试过使用:
<pre>
<h:outputText value="${exception}"/>
</pre>
但我没有得到任何输出。我一直在搜索互联网,但我没有找到解决方案。如何在 Facelets 页面中显示异常堆栈跟踪?
编辑:
我刚刚试过:
<c:forEach var="exeption" items="${exception.stackTrace}">
<div>${exeption}</div>
</c:forEach>
<h:dataTable value="#{exception.stackTrace}"
var="exception">
<h:column>
<h:outputText value="#{exception}"/>
</h:column>
</h:dataTable>
JSTL 不工作,通过数据表进行交互也不工作。我确信发生了异常,我在我的日志文件中看到了它。
【问题讨论】:
-
您是否尝试迭代堆栈跟踪元素?就像使用 for 和 itens 一样是 ${exception.stackTrace}?
-
不,我没有尝试过。我现在就试试看它是否有效。谢谢。
-
不客气!如果可行,我会发布答案;)
-
不幸的是,这不起作用,我已经编辑了问题。
-
我对 JSF 很生疏,但也许
只接受字符串(我真的不记得了)。试试 #{exception.message}之类的东西,看看是否生成了什么。
标签: java jsf exception jsf-2 facelets