Structs2 命名空间

本文介绍了Struts2框架中的命名空间概念及其作用,通过示例详细解释了如何避免相同名称的Action冲突,并展示了如何在配置文件中指定命名空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习structs2的过程中,遇到了namsapce,虽然比较好理解,但是在使用的过程中还是遇到些问题,便将其记录下来。

作用:
为了解决包含同一个action的问题,在相同的命名空间里不能存在相同的action,但是不同的命名空间里,可以存在相同的action。

**须知:**Structs2不支持单独为action设置命名空间,而是在包Package中指定命名空间,如果不指定的话,默认在默认的命名空间下。默认的命名空间为”“,可以接收属于路径下的action。

示例1:
如果请求为/login.action 那么系统会首先查找命名空间为test的action,如果在这个命名空间找到相对应的action,则使用该类处理请求。否则系统将在默认命名空间里查找,找到则使用该类处理,否则系统错误。

这种方式namespace使用”/” 和默认的都行。

这里写图片描述

示例2:

jsp:

<form action="test/login.action" method="post">
            用户名:
               <!-- 参数名和action中的属性名一样  -->
            <input type=text name=user.username>
            <br>
            密&nbsp;&nbsp;码:
            <input type=password name=user.password>
            <br>
            <input type=submit name=subm value="提交">
            <input type=reset name=reset value="取消">
        </form>

structs2:

<package name="actions" namespace="/test" extends="struts-default">
     <!-- 定义Action(login.action)  -->
        <action name="login" class="org.action.UserAction">
              <!-- 定义转发路径对应的字符串名  -->
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
</package>

示例2 由于你访问的是/test/login.action 所以你在进行action映射的时候需要指定命名空间为/test,–就像访问包下的类一样。

当然示例二 也可以使用默认的namespace ,或者使用根”/”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值