struts.xml 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 指定由spring负责action对象的创建 -->
<constant name="struts.objectFactory" value="spring" />
<!-- 所有匹配*.action的请求都由struts2处理 -->
<constant name="struts.action.extension" value="action" />
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- struts配置文件改动后,是否重新加载 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 设置浏览器是否缓存静态内容 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 文件上传最大值 -->
<!--<constant name="struts.multipart.maxSize" value="104857600" />-->
<constant name="struts.multipart.maxSize" value="1073741824" />
<!-- 让struts2支持动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- Action名称中是否还是用斜线 -->
<constant name="struts.enable.SlashesInActionNames" value="false" />
<!-- 允许标签中使用表达式语法 -->
<constant name="struts.tag.altSyntax" value="true" />
<!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
<constant name="struts.dispatcher.parametersWorkaround" value="false" />
<!-- xxx -->
<constant name="struts.multipart.saveDir" value="/tmp"/>
<constant name="struts.multipart.handler" value="myRequestParser"/>
<!-- 设置是否支持动态方法调用,true为支持,false不支持 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 配置Convention插件自动重加载映射,生产模式中要设置为false -->
<constant name="struts.convention.classes.reload" value="true" />
<!-- 当指定convention的这个属性,Struts框架就会在你访问特定的URL时会自动的找到所要的请求的实现类 -->
<constant name="struts.convention.action.packages" value="com.dgq.xunshe.struts2.action.*" />
<!-- 设置Convention插件定位视图资源的根路径。默认值为/WEB-INF/content这个属性用于约定Action类执行完毕以后返回资源的结果路径 -->
<constant name="struts.convention.result.path" value="/WEB-INF/jsp/" />
<!-- 这个属性是约定当一个Java类有多个单词组合成的时候,映射的URL地址的时候访问格式的分隔符, 如果不指定这个属性,Struts默认的分隔符是
“-”, 如果指定这个属性是下面的格式,则是没有分隔符,会按照Java 类名直接映射,例如HelloWorldAction 则访问的URL 是HelloWorld.action -->
<constant name="struts.convention.action.name.separator" value="_" />
<!-- 是否将Action类的访问地址转换成小写 -->
<constant name="struts.convention.action.name.lowercase" value="false" />
<package name="all" extends="struts-default">
<interceptors>
<!-- 定义权限控制拦截器 -->
<interceptor name="authority" class="com.dgq.xunshe.struts2.interceptor.LoginInterceptor"/>
<!-- 定义一个包含权限控制的拦截器栈 -->
<interceptor-stack name="customDefaultStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="customDefaultStack" />
<global-results>
<result name="input">/WEB-INF/common/input.jsp</result>
<result name="error">/WEB-INF/jsp/common/error.jsp</result>
<result name="session_invalid">/WEB-INF/jsp/demo/admin/session_invalid.jsp</result>
<result name="relogin">/WEB-INF/jsp/common/init.jsp</result>
<result name="login">/index.html</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>
</struts>