一个应用中的多个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
本文介绍了在Struts框架中如何使用命名空间(namespace)来区分重名的Action类。通过配置不同的命名空间,可以实现对相同名称Action的区分,从而避免了在struts.xml文件中的重名冲突问题。
219

被折叠的 条评论
为什么被折叠?



