struts2中Action的name 和package的name和namespace是什么作用

在struts2的 struts.xml 配置中 例:

Xml代码    收藏代码
  1. <package name="strutsX" namespace="/mystruts" extends="struts-default">  
  2.       <action name="sum" class="action.FirstAction">  
  3.           <result name="positive">/positive.jsp</result>  
  4.           <result name="negative">/negative.jsp</result>  
  5.       </action>  
  6.  </package>  


name="strutsX"  
name="sum
namespace="/mystruts
---------------------------- 
1.package中的name只是一个标识,你可以随意命名,其他的配置文件可以继承这个package.比如例子中的strutsX就是继承了spring-core-2.0.5.jar 包里的 struts-default.xml中的名为struts-default 的 package; 
struts-default.xml 中的 struts-default 的 package

Xml代码    收藏代码
  1. <package name="struts-default" abstract="true">  
  2.     ...   
  3. </package>  
Xml代码   收藏代码
  1. 2.action中的name对应你页面中的一个action跳转,比如你页面有个表单提交:   
  2.     <form action="struts.xml中action里的name">   
  3.   
  4. 3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如你的这个例子),那么就说明包struts2的空间为<span style="color: cyan;">/mystruts</span>。   
  5. namespace实际上是在包的基础上对Action的进一步组织和划分,可以解决Action重名问题,因为在不同的命名空间中是可以有相同的Action名的,就好比一班有个叫张三的,二班也有个叫张三的,当我们呼叫某个张三时,就得带上“命名空间”,Action也是如此,例子的sum就必须通过 /mystruts/sum.action的方式来进行调用。  

你可能感兴趣的:(struts2中Action的name 和package的name和namespace是什么作用)