Action与Result相关类结构 通配符映射

<result>

         <param name="location">success.jsp</param>

</result>

result标签中没有type,默认为dispatcher转发,对应类public class ServletDispatcherResult extends StrutsResultSupport{}

对应的StrutsResultSupport类中有private String location;和location的set和get方法,location字符串的内容就是success.jsp


action接口与实现类

Action接口中有execute方法,ActionSupport实现了Action接口,自定义Action继承了ActionSupport类


 

Result接口与实现类

Result接口中有execute方法,StrutsResultSupport类实现了Result接口,ServletDispatcherResult类与ServletRedirectResult类和ServletActionRedirectResult类继承了StrutsResultSupport类,分别对应三种常见的Action返回类型dispatcher,redirect,redirectAction


 

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

             <action name="actionName" class="cn.className类的全名" method="methodName">

                     <result name="method返回值" type="默认dispatcher">target.jsp</result>

              </action>

</package>

①可以通过action标签中的method属性改变action默认请求方法

②利用url中actionName!methodName.action调用制定方法


 

①不同actionName访问同意Action中add方法

通配符*代表任何字符串,可以用在action中name属性中,比如action中name属性值为*_add,当url访问a_add.action,b_add.action,c_add.action时都会映射到*_add


 

②访问不同Action中的add方法

    <action name="*_add" class="cn.{1}" method="add">

            <result name="add">success.jsp</action>

    </action>

访问<a href="${pageContext.request.contextPath}/pattern/PersonAction_add.action">测试</a>时就相当于

    <action name="PersonAction_add" class="cn.PersonAction" method="add">

            <result name="add">success.jsp</action>

    </action>

访问<a href="${pageContext.request.contextPath}/pattern/StudentAction_add.action">测试</a>时就相当于

    <action name="StudentAction_add" class="cn.StudentAction" method="add">

            <result name="add">success.jsp</action>

    </action>

 

③请求PersonAction中的aa,bb,cc方法

    <action name="PersonAction_*" class="cn.StudentAction" method="{1}">

            <result name="success">success.jsp</action>

    </action>

访问<a href="${pageContext.request.contextPath}/pattern/patternAction_aa.action">测试</a>

访问<a href="${pageContext.request.contextPath}/pattern/patternAction_bb.action">测试</a>

访问<a href="${pageContext.request.contextPath}/pattern/patternAction_cc.action">测试</a>

④一劳永逸的配置方法但是效率低

    <action name="*_*" class="cn.pattern.{1}" method="{2}">

              <result name="success">success.jsp</result>

    </action>

发表评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值