您的位置:首页 > 其它

Structs2 命名空间

2016-05-22 13:11 176 查看
在学习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>
密  码:
<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 ,或者使用根”/”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  命名空间