一个应用中的多个Action类都需要在struts.xml中配置,重名现象不可避免。
通过为Action所在的包指定namespace属性来为该包下的所有Action指定共同的命名空间。
<!--配置default包,命名空间默认-->
<package name="default" extends="struts-default">
<!--配置名为user的Action类-->
<action name="user" class="com.xml.actions.UserAction">
<result name="success">output.jsp</result>
</action>
</package>
<!--配置mydefault包,命名空间为/xml-->
<package name=" " extends="struts-default" namespace="/mxl">
<!--配置名为user的Action类-->
<action name="user" class="com.xml.actions.LoginAction">
<result name="success">index.jsp</result>
</action>
</package>
URL:http://localhost:8080/ch1/xml/user.action
该URL会进入mydefault包下的Action类
请求过来,先到对应命名空间下找,找不到就去默认,找不到就报错。
namespace="/" 根命名空间
只能处理: http://localhost:8080/ch1/user.action(ch1为项目名称)
不能处理: http://localhost:8080/ch1/xml/user.action