补上自定义的错误拦截器代码和国际化资源代码java
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<String, Object> 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"; } } }
国际化文件web
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\!
完整的例子,后续打个包传上来
apache