Struts2_学习笔记(二)--------Namespace、Action、Path、ActionMethod_DMI、ActionWildcard

本文介绍Struts2框架中Namespace的作用与配置方法,Action的实现方式及其返回视图的机制,Path配置的重要性及推荐做法,ActionMethod与ActionWildcard通配符的使用技巧,并提供了配置实例。

一、Namespace(参考Struts2_0200_Namespace)

namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action, /xxx/index.action,或者/xxx/yyy/index.action.
namespace最好也用模块来进行命名

二、Action(参考Struts2_0300_Action)

具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有public String execute()方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法

三、Path(参考Struts2_0400_Path)

struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。虽然可以用redirect方式解决,但redirect方式并非必要。

解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)

或者使用myeclipse经常用的,指定basePath

即:String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"

并在<head>中加<basehref="<%=basePath%>"/>

四、ActionMethod_DMI(参考Struts2_0600_ActionMethod)

<action name="userAdd"class="com.bjsxt.struts2.user.action.UserAction"method="add">

            <result>/user_add_success.jsp</result>

        </action>

       

        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">

            <result>/user_add_success.jsp</result>

        </action>

</package>

使用第二种的方法进行动态调用 即:

<a href="<%=context%>/user/user!add">

五、ActionWildcard通配符(参考Struts2_0600_ActionWildcard)

{1}代表第一个’*’,使用通配符可以使配置量降到最低,如果约定的好,配置将会特别简单。

<package name="actions"extends="struts-default" namespace="/actions">

        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction"method="{1}">

            <result>/Student{1}_success.jsp</result>

        </action>

       

        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action"method="{2}">

            <result>/{1}_{2}_success.jsp</result>

            <!-- {0}_success.jsp -->

        </action>

    </package>

如果一个请求能匹配多个action,优先进行精确匹配。如果对于多个有通配符的action,优先匹配最上面的action。

六、注意事项

复制项目时,要修改propertiesàMyEclipseàwebàWeb Context-root


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值