Struts配置中的contast主要是涉及一些常量的配置。包含下面的配置
<!-- 所有匹配*.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" />
<!-- 请求参数的编码方式 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<!-- 文件上传最大值 -->
<constant name="struts.multipart.maxSize" value="104857600" />
<!-- 让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" />Code language: HTML, XML (xml)
package是一个包,相当于一个模块,用来区分重名。
package可以有多个解决重名的情况, namespace 可以不写,默认是任何路径都可以,也可以写成/xx/yy ,但是必须是/开头
我们再web.xml中把把所有的/*的地址都交给了struts来处理了。然后struts2再通过在struts.xml中根据package 的namespace来具体交给那个action来处理。
不过往往package的namespace 用来进行模块划分的。比如说后台部分功能我们可以配置
比如我们下面配置
<struts>
<constant name="struts.devMode" value="true"/>
<package name="admin" namespace="/admin" extends="struts-default">
<action name="index">
<result>
/admin/index.jsp
</result>
</action>
<action name="platform">
<result>
/admin/platform.jsp
</result>
</action>
</package>
<package name="default" namespace="/" extends="struts-default">
<action name="index">
<result>
/demo.jsp
</result>
</action>
</package>
</struts>Code language: HTML, XML (xml)
我们下面定义两个包,一个admin用来作为后台模块部分。一个default用来作为前台部分。
Admin里面两个action 一个是后台首页/admin/index 一个是前台首页。
然后我们在webroot中添加一个admin文件然后田两个jsp,index.jsp和platform.jsp文件。
另外,如果namespace为空的化,那么就是匹配的时候只观察整个地址是否出现过这个action的名称。
比如前台的拦截器如果namespace=””为空。则不管是
/index
还是/dddd/sadfs/sdf/sdf/index
还是http://p50:8080/Struct2Demo/admin/index/add
都可能被匹配到这个action
不过我们发现 好像就算url地址没有index的单词 也是可以访问到首页的jsp的
http://p50:8080/Struct4Demo/indexsdfds
http://p50:8080/Struct4Demo/ddd
都是可以正常访问
特殊的package应该放在上面。
比如向我们现在这样子配置的化
如果我们访问呢
http://p50:8080/Struct2Demo/admin/index
则还是访问呢后台
发现还是可以的。所以我们的package 应该是没有顺序的???。