zoukankan      html  css  js  c++  java
  • struts2异常处理

    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;
        }    
    }
  • 相关阅读:
    java反射注解妙用-获取所有接口说明
    npm设置和查看仓库源
    正则表达式-linux路径匹配
    在vue中使用echarts图表
    设计模式-简单工厂模式
    设计模式
    Redis实现世界杯排行榜功能(实战)
    开发十五、k3cloud单据的附件自动上传到钉钉的审批单中
    微盟与金蝶k3cloud、erp库存对接
    开发一、k3cloud内服务工单过滤在库批号
  • 原文地址:https://www.cnblogs.com/cjunj/p/2251843.html
Copyright © 2011-2022 走看看