struts2配置中Action的name 和package的name和namespace是什么作用
时间:2010-07-18 来源:jiaguwen123
在struts2 struts.xml 配置中
<struts>
<package name="caixuedong" extends="struts-default" namespace="/core">
<action name="greeting" class="com.tarena.struts2.action.GreetingAction" >
<result name="success">/core/greeting.jsp </result>
</action>
</package>
</struts>
name="caixuedong"
namespace="/core"
name="greeting"
这三个怎么去理解啊
----------------------------
1.package中的name只是一个标识,你可以随意命名;
2.action中的name对应你页面中的一个action跳转,比如你页面有个表单提交: <form action="struts.xml中action里的name">
3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如你的这个例子),那么就说明包caixuedong的空间为/core。
namespace实际上是在包的基础上对Action的进一步组织和划分,可以解决Action重名问题,因为在不同的命名空间中是可以有相同的Action名的,就好比一班有个叫张三的,二班也有个叫张三的,当我们呼叫某个张三时,就得带上“命名空间”,Action也是如此,例子的greeting就必须通过 /core/greeting.action的方式来进行调用。
greeting那个name就是Action的名字,相当于上个例子的“张三”
包的名字只是作为其他包引用本包的标记
<struts>
<package name="caixuedong" extends="struts-default" namespace="/core">
<action name="greeting" class="com.tarena.struts2.action.GreetingAction" >
<result name="success">/core/greeting.jsp </result>
</action>
</package>
</struts>
name="caixuedong"
namespace="/core"
name="greeting"
这三个怎么去理解啊
----------------------------
1.package中的name只是一个标识,你可以随意命名;
2.action中的name对应你页面中的一个action跳转,比如你页面有个表单提交: <form action="struts.xml中action里的name">
3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如你的这个例子),那么就说明包caixuedong的空间为/core。
namespace实际上是在包的基础上对Action的进一步组织和划分,可以解决Action重名问题,因为在不同的命名空间中是可以有相同的Action名的,就好比一班有个叫张三的,二班也有个叫张三的,当我们呼叫某个张三时,就得带上“命名空间”,Action也是如此,例子的greeting就必须通过 /core/greeting.action的方式来进行调用。
greeting那个name就是Action的名字,相当于上个例子的“张三”
包的名字只是作为其他包引用本包的标记
相关阅读 更多 +