ExceInterceptor.java 1.61 KB
package com.rnt.commo.interceptor;

import javax.servlet.http.HttpServletRequest;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import com.rnt.vo.BizResult;

/**
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: com.rnt.commo.interceptor
 * @Description: 统一异常处理
 * @version: v1.0.0
 * @author: atao
 * @date: 2017/6/7   下午4:21
 * Modification History:
 * Date         Author          Version      Description
 * ---------------------------------------------------------*
 * 2017/6/7      atao          v1.0.0          创建
 */
public class ExceInterceptor implements Interceptor {

    @Override
    public void intercept(Invocation inv) {
        Controller controller = inv.getController();
        HttpServletRequest request = controller.getRequest();

        Boolean isAjax = false;

        try {
            inv.invoke();
        } catch (Exception e) {
            e.printStackTrace();
            String header = request.getHeader("X-Requested-With");
            //判断是否是ajax请求
            isAjax = "XMLHttpRequest".equalsIgnoreCase(header);
            if (isAjax) {
                // ajax 请求,返回json数据
                BizResult<String> bizResult = new BizResult<String>();
                bizResult.setCode("9999");
                bizResult.setMsg("系统异常,请稍后重试!");
                controller.renderJson(bizResult);
            } else {
                //非ajax 请求,请求的是页面,跳转到错误页面。
                controller.render("syserror.html");

            }
        }

    }
}