Struts2中关于namespace的学习心得
Struts.xml:
<span style="font-size:24px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.configuration.xml.reload" value="true"/>
<package name="front" extends="struts-default" namespace="/front">
<action name="index1">
<result>/index.jsp</result>
</action>
</package>
<package name="main" extends="struts-default" namespace="">
<action name="index">
<result>/Namespace.jsp</result>
</action>
</package>
</struts>
</span>
namespace即“命名空间”,也称“名称空间”。namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action, /xxx/index.action,或者/xxx/yyy/index.action. (.action可以省略的)
namespace决定了action的访问路径。
如:
<span style="font-size:24px;"> <package name="front" extends="struts-default" namespace="/front">
<action name="index">
<result>/index.jsp</result>
</action>
</package>
</span>
要想访问这个front包下的action 的index时,我们需要在url(http://localhost:8080/项目名称)路径中添加namespace(即/front)然后在添加action的名字index,就可以访问到index.jsp页面了。如下输入url: http://localhost:8080/项目名称/front/index或者url: http://localhost:8080/项目名称/front/index.action(.action可以省略的)
一般情况下,namespace默认为"",在struts.Xml中
<package name="main" extends="struts-default">
<!--也相当于<package name="main" namespace="" extends="struts-default">--!>
如:
<span style="font-size:24px;"><package name="main"extends="struts-default" namespace="">
<action name="index">
<result>/Namespace.jsp</result>
</action>
</package>
</span>
namespace默认为"",可以接收所有路径的action. (只要在url路径中输入action名字index则可以优先访问以index为名字且namespace为“”的action,而不会访问action名字同为index的action)
如 url: http://localhost:8080/项目名称/dsdk/dsds/dsd/index或者url: http://localhost:8080/项目名称/sdb/smd/index都可以访问到Namespace.jsp。(只要在url: http://localhost:8080/项目名 下最后输入action的名字index都可以访问)
namespace最好也用模块来进行命名.