<constant>和<package>同级。
大致看了下struts2源码,其中有一个Dispather类在进行初始化init的时候:
从上图可以看出,StrutsPrepareAndExecuteFilter(Struts2的核心过滤器里面依次往下看源码)首先是加载了org.apache.struts2包下的default.properties
然后再按顺序加载struts-default.xml,struts-plugin.xml,struts.xml,并且这三个xml文件的dtd约束都是一样的。
从而也可以看出若要使用这三个配置文件,则必须放在src目录下。
所以如果想覆盖前两个xml文件中的配置,只要在struts.xml中进行属性覆盖即可。也可以覆盖掉default.properties,name为properties的key,value为properties的value。
<!-- 自动加载struts.xml文件 -->
<constant name="struts.devMode" value="true" />
<!-- 不使用struts2提供的simple主题,不需要自动加table什么的-->
<constant name="struts.ui.theme" value="simple"/>
<!-- 后缀可以为action或者空或do -->
<constant name="struts.action.extension" value="action,,do"/>
<!-- 指定struts2在获取参数的时候用什么编码解码,相当于request.setCharacterEncoding("UTF-8"),只适用于post提交 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>