浏览 4402 次
锁定老帖子 主题:请教一个webwork异常处理机制的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-11
<global-results> <result name="exception"> exception.jsp</global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="exception" /> </global-exception-mappings> 我在TestAction抛出一个Exception, 启动Tomcat后,执行这个TestAction,会跳转到exception.jsp这个页面,请问该怎么得到这个Exception的具体信息呢,怎么在页面上显示这个Exception的信息? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-11
我也遇到同样的问题,环境不是WebWork,我做了一个filter来拦截异常,拦截到后放到线程变量中,在页面上取。
在WebWork里不知道是不是可以用XWork的拦截机制来拦截 |
|
返回顶楼 | |
发表时间:2007-01-11
从ongl stack里面可以取出来exceptionHolder,然后打印就可以了。去看看ExceptionMappingInterceptor的源代码就清楚了。
|
|
返回顶楼 | |
发表时间:2007-01-12
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack"%> <%@ page import="com.opensymphony.xwork.ActionContext"%> <%@ page import="com.opensymphony.xwork.interceptor.ExceptionHolder"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Exception!</title> </head> <body> <% OgnlValueStack s = ActionContext.getContext().getValueStack(); ExceptionHolder e; String s1 = new String("");; String name = new String(""); for(int i = s.size();i>0;i--){ Object obj = s.pop(); if(obj instanceof ExceptionHolder){ e = (ExceptionHolder)obj; Object o = e.getException(); s1 =e.getExceptionStack(); break; } } %> <table width="400" align="center" valign="middle" border="1" cellspacing="2" cellpadding="2"> <tr><td bgcolor="blue" align="center" height="30" style="font-size:9pt;"> <font color="white"><%=name%></font> </td></tr> <tr><td> <H2>错误详细信息:</H2> <%=s1%><br> </td> </tr> <tr><td align="center"> <input type=button name=return value=返回 onclick="javascript:history.go(-1);"> </td></tr> </table> </body> </html> 我是这样写的,但是还是取不到exceptionHolder 该怎么得到这个exceptionHolder呢? |
|
返回顶楼 | |
发表时间:2007-05-24
我也遇到了这个问题,在页面上<s:property value="exceptionHolder"/>没有作用。
|
|
返回顶楼 | |
发表时间:2007-05-24
如果你使用了ExceptionMappingInterceptor,并且页面部分使用的是FreeMarker,那么在模板中可以直接使用
[list=]${exception} 打印出异常信息,[/list] [list=]而${exceptionStack}可以打印异常堆栈[/list] 其他的模板类似 |
|
返回顶楼 | |
发表时间:2007-05-31
如果是velocity呢
|
|
返回顶楼 | |
发表时间:2007-06-01
kyvin 写道 如果是velocity呢
答复: 如果是在Velocity模板引擎中,也是类似FreeMarker中的表示方法: ${exception} 或 $exception |
|
返回顶楼 | |