DispatchAction的使用

                 关于DispatchAction,他是一个动态的Action,说的直白点就是可以把很多个Action的东西集成到一个Action当中,优点就是可以不用写很多个Action那么麻烦与混乱,直接在一个当中实现,很多个Action的作用。

                   用法就是extends DispatchAction,原来我们继承Action的时候呢,里面的ActionForward 有一个execute方法,现在我们把这个execute改成任意的名字,但是这个名字是很有用的,他关系到的就是你上传的表单数据调用的是哪个Action,他里面的藏书一定要与execute的参数相同。DispatchAction其中有execute这个方法,我们这里还是同样可以对其重写进行使用,但是要注意的是,一定要return super.execute(mapping,form,request,response);如果不是return这里,那么我们的DispatchAction的功能将会失效。

                  调用他的时候主要就是在配置文件当中,原来我们在Struts-config.xml中action中我们的配置的参数主要就是 path、attribute、input、name、scope、type,现在用到了DispatchAction的时候我们需要多配置一个parameter=""这就相当于一个标示,我们通过他在根据在通过Action中你自己命名的方法名,进行不同的Action调用。

                  还要注意的就是,原来我们在jsp页面的时候action后面跟的就是一个地址,在根绝xml中进行查找,现在我们的action后面要写的就是例如原来写的是action="servlet"现在我们要写成action="servlet?method=Login"此处这个method则是你在xml中<action parameter="method"/>设置的,而Login则是你在Action中起的那个代替execute的方法名字。

 

例:

struts-config.xml中的配置方法

 <action path="/login"
       name="LoginForm"
       attribute="LoginForm"
       type="com.strutstl.action.LoginAction"
       scope="request"
       input="/login.jsp"
       parameter="method">
      <forward name="success" path="/login.jsp"></forward> 
       </action>

 

此处配置完毕,我们在看看jsp页面中的写法,用到这个DispatchAction的时候呢,jsp页面里我只能用标签实现,用html语言还没有实现,所以我贴的也是用标签实现的,如果有用html实现的也可以告诉我交流一下。

<html:form action="login?method=login"> <!--主要看的是这里-->
      <h3>姓名:<html:text property="name"/></h3>
      <html:submit value="确定"/><br>
      <a href="reg.do">申请注册</a>
      <a href="ind.do">删除账户</a>
    </html:form>

 

这两处配置完毕我们要看看Action中是怎么写的,原来我们的Action继承的都是Action这次我们只需要继承DispatchAction就可以了。public class LoginAction extends DispatchAction {

 public ActionForward login(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {

  LoginActionForm laf = (LoginActionForm) form;
  String name = laf.getName();
  Bean b = new Bean();
  b.setName(name);
  request.setAttribute("bean", b);
  return mapping.findForward("success");
 }

这里我只是给大家弄上来的是一部分,大家根据自己的思想去补全!~

 

            到此结束,粗略见解,希望大家提出宝贵意见。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值