Structs2 命名空间

来源:互联网 发布:淘宝怎么做虚拟产品 编辑:程序博客网 时间:2024/06/06 23:59

在学习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 ,或者使用根”/”。

0 0
原创粉丝点击