Struts2中,当指定了名称空间之后,访问路径就变成了:名称空间+动作名称。 当不指定该属性时,该属性有默认值,默认值"",注意,不是"/"(代表root根)!!!!!
<package name="p1" extends="struts-default" namespace="/user">
<action name="action1" class="cn.test01.Demo1Action" method="hello">
<result name="success">
/success.jsp
</result>
</action>
</package>
好比这样的配置,访问时则是 /user/hello
然而,Struts2的名称空间访问规则,远不如它看上去的那般单一、简单。Struts2的名称空间是有着一套搜索顺序与规则的:
第一步:先去找对应的名称空间
在指定的名称空间下,找到了,就去执行第二步。
如果没有找到,则按照空间结构,向上追溯,一直到根名称空间(注意:是"/",而不是默认的"",只要在任何一级上找到了,都会执行第二步)
第二步:找动作名称
现在指定的名称空间下(第一步搜索到的命名空间),搜索对应的动作名称:找到了就执行动作类的动作方法。
如果没有找到,则前往默认的名称空间下"",找到动作名称(action)。
如果文字的描述还不够直观的话,这里有一张清晰的流程图: