struts2 用iframe 做个无刷新上传文件例子(二)

补上自定义的错误拦截器代码和国际化资源代码

package com.hello.web;
/**
 * 自定义拦截器例子
 * 拦截器是单例的
 * */
import java.util.Map;

import org.apache.struts2.dispatcher.ServletDispatcherResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class ErrorInterceptor extends AbstractInterceptor {
    private static final long serialVersionUID = -7370956658036991526L;
    private Logger logger = LoggerFactory.getLogger(ErrorInterceptor.class);
    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        // TODO Auto-generated method stub
        try
        {
            logger.debug("begin-------------------------------");  
            logger.debug("ErrorInterceptor实例:"+this.toString());
            //找到运行的Action对象,并打印其类名  
            //logger.debug("Action:"+invocation.getAction().getClass().getName());  
            logger.debug("Action:"+invocation.getAction().getClass());  
            //找到运行的ActionProxy对象,并打印其要运行的方法名  
            logger.debug("Method:"+invocation.getProxy().getMethod());  
            //找到这次请求的request中的parameter参数,并打印  
            Map params = invocation.getInvocationContext().getParameters();  
            for (String key:params.keySet()){  
                Object obj = params.get(key);  
                if(obj instanceof String[]){  
                    String[] arr = (String[]) obj;  
                    logger.debug("Param:"+key);  
                    for (String value:arr){  
                        logger.debug(value);  
                    }  
                }  
            }  
            //运行后续的拦截器、Action和Result  
            String resultCode = invocation.invoke();  
            logger.debug("resultCode:"+resultCode);
            //在Action和Result运行之后,得到Result对象  
            //并且可以强制转换成ServletDispatcherResult,打印其下一个JSP的位置  
            Result rresult = invocation.getResult();  
            if (rresult instanceof ServletDispatcherResult){  
                ServletDispatcherResult result = (ServletDispatcherResult) rresult;  
                logger.debug("JSP:"+result.getLastFinalLocation());  
            }  
            logger.debug("end-------------------------------");           
            return resultCode;   

        }catch(Exception e){
            logger.error("拦截器异常:",e);
            return "500";
        }
    }

}

国际化文件

userIdNotNull=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A\uFF01
passwordlengthErrMsg=\u5BC6\u7801\u957F\u5EA6\u9700\u5927\u4E8E6\u4F4D\uFF01
passwordNotNull=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A\uFF01
#file upload
struts.messages.error.content.type.not.allowed=\u4E0A\u4F20\u6587\u4EF6\u53EA\u80FD\u4E3AJPG,PNG,GIF,TXT\u7C7B\u578B\uFF01
struts.messages.error.file.too.large=\u6700\u591A\u53EA\u80FD\u4E0A\u4F201M\u5927\u5C0F\u7684\u6587\u4EF6\uFF01
struts.messages.upload.error.SizeLimitExceededException=\u6700\u5927\u53EA\u5141\u8BB8\u4E0A\u4F20\: {0} Byte \u5F53\u524D\u6587\u4EF6\u5927\u5C0F\: {1} Byte\!

完整的例子,后续打个包传上来

转载于:https://my.oschina.net/sharkbobo/blog/226981

你可能感兴趣的:(struts2 用iframe 做个无刷新上传文件例子(二))