论坛首页 Java企业应用论坛

请教一个webwork异常处理机制的问题

浏览 4402 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-11  
我是配置xwork.xml
<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的信息?
   发表时间:2007-01-11  
我也遇到同样的问题,环境不是WebWork,我做了一个filter来拦截异常,拦截到后放到线程变量中,在页面上取。
在WebWork里不知道是不是可以用XWork的拦截机制来拦截
0 请登录后投票
   发表时间:2007-01-11  
从ongl stack里面可以取出来exceptionHolder,然后打印就可以了。去看看ExceptionMappingInterceptor的源代码就清楚了。

0 请登录后投票
   发表时间: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呢?
0 请登录后投票
   发表时间:2007-05-24  
我也遇到了这个问题,在页面上<s:property value="exceptionHolder"/>没有作用。
0 请登录后投票
   发表时间:2007-05-24  
如果你使用了ExceptionMappingInterceptor,并且页面部分使用的是FreeMarker,那么在模板中可以直接使用
[list=]${exception} 打印出异常信息,[/list]
[list=]而${exceptionStack}可以打印异常堆栈[/list]

其他的模板类似
0 请登录后投票
   发表时间:2007-05-31  
如果是velocity呢
0 请登录后投票
   发表时间:2007-06-01  
kyvin 写道
如果是velocity呢

答复:
如果是在Velocity模板引擎中,也是类似FreeMarker中的表示方法:
${exception} 或 $exception
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics