您的位置:首页 > 编程语言 > Java开发

struts2异常处理

2011-11-16 21:34 330 查看
struts2提供了声明式异常处理,可以针对不同的异常做不同的处理。我想拦截Action中的所有异常,然后通过Log4j进行日志记录,再呈现到页面。

首先在struts配置文件中配上一个全局的java.lang.Exception。这样所有异常都会被这个exception-mapping所拦截,并返回一个name为ALL_EXCEPTION的result

<global-exception-mappings>
<exception-mapping result="ALL_EXCEPTION" exception="java.lang.Exception"/>
</global-exception-mappings>
再来配置一个<global-results>来处理异常,通过chain跳转到exectionHandle这个action中

<global-results>
<result name="ALL_EXCEPTION" type="chain">exectionHandle</result>
</global-results>

exectionHandle配置,这里的action用spring来管理的(exectionHandleAction)。处理异常后返回到指定界面(界面用的veloctiy模板)。

<action name="exectionHandle" class="exectionHandleAction">
<result type="velocity">/WEB-INF/public_ucenter_shopmanage/ServerExceptionPage.html</result>
</action>
最后看一下action中的处理,直接用logo4j输出。

public class ExceptionHandleAction extends ActionSupport{
private static final long serialVersionUID = 6019598646317953160L;
private static Logger logger = Logger.getLogger(ExceptionHandleAction.class);

@Override
public String execute() throws Exception {
String logoInfo = ActionContext.getContext().getValueStack().findString("exceptionStack");
logger.info(logoInfo);
logger.debug(logoInfo);
return SUCCESS;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: