Struts2 通过配置struts.xml中的actio标签name属性值来与请求路径映射
默认情况下Struts2 通过配置struts.xml中的package标签 namespace属性
值来与请求路径映射的。
通过以下几步就可以修改这个默认设定
1 在dafult.properties (struts-core.jar)
中找到[struts.enable.SlashesInActionNames = false]后,在class 目录下新建
struts.properties文件,并修改:[ struts.enable.SlashesInActionNames = true]
2设定struts.xml
<package name="xuxl1" extends="struts-default">
<action name="test1/test1" class="xuxl.struts.action.Test1">
<result name="success">/test1.jsp</result>
</action>
</package>
<package name="xuxl2" extends="struts-default" namespace="/test2">
<action name="test2" class="xuxl.struts.action.Test2">
<result name="success">/test2.jsp</result>
</action>
</package>
注意:action标签 name属性["test1/test1"]不能以[/]开头
package标签 namespace属性["/test2 "]要 [/]开头。(参照root namespace文档)
原因 struts [package标签 namespace属性值]+[/] +[ackage标签 namespace属性值]和 请求路径匹配后,来调用对应action
假设请求路径如下
String path = request.getContextPath();
<a href="<%=path%>/test1/test11/test1.action">test1</a><br>
那么struts.xml进行如下设置 便可以匹配到请求
<package name="xuxl1" extends="struts-default" namespace="/test1">
<action name="test11/test1" class="xuxl.struts.action.Test1">
<result name="success">/test1.jsp</result>
</action>
</package>
本文介绍如何在Struts2框架中通过配置struts.xml文件实现请求路径映射,包括如何启用斜杠(/)在action名称中以及如何使用namespace属性进行更细粒度的路径映射。
3986

被折叠的 条评论
为什么被折叠?



