有时在HTML form中需要提供多个提交按钮,这时LookupDispatchAction类就派上用场了。LookupDispatchAction是DispatchAction的子类,用于处理客户端代码中有一个Form含有多个提交按钮的情况。为了使用LookupDispatchAction,首先来编写客户端代码,代码如下:

<html:form action="myaction">
     
    <html:submit property="action">
        <bean:message key="submit.print" />
    </html:submit>
    <html:submit property="action">
        <bean:message key="submit.save" />
    </html:submit>
</html:form>
其中submit.print和submit.save是属性文件中的key。action实际上是提交按钮的name属性值。在提交时,会将property和<bean:message key="..." />作为请求参数和参数值传给Struts动作。如save按钮被单击时,请求URL为http://localhost:8080/.../myaction.do?action=save。其中save为submit.save在属性文件中对应的属性值,也就是说submit.save = save。
接下来我们编写一个LookupDispatchAction的子类,代码如下:
package action;
import org.apache.struts.actions.LookupDispatchAction;
 
  public class MyLookupDispatchAction extends LookupDispatchAction
  {
      //  为了方便描述,在这里未使用属性文件,只是直接将key和value的映射添加到Map对象中
      //  读者可以在getKeyMethodMap方法中从属性文件中读取相应的key-value对
      //  来添加到Map对象中
      protected Map getKeyMethodMap()
      {
          Map m = new HashMap();
          m.put("submit.print", "print");
          m.put("submit.save", "save");
          return m;
      }
      public ActionForward print (ActionMapping mapping, ActionForm form,
              HttpServletRequest request, HttpServletResponse response)
      {
          // 处理print代码
      } 
      public ActionForward save(ActionMapping mapping, ActionForm form,
              HttpServletRequest request, HttpServletResponse response)
      {
          // 处理save代码
      } 
  }
在编写LookupDispatchAction的子类时要注意必须实现getKeyMethodMap方法,在这个方法中需要进行key和Action方法的映射。下面的代码用来配置MyLookupDispatchAction。
<action path="/moresubmit" type="action.MyLookupDispatchAction" parameter="action" />
其中parameter属性指定了请求URL中由提交按钮生成的请求参数名。

Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit相关推荐

  1. Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit

    虽然LookupDispatchAction类可以很好地处理拥有多个提交按钮的Form,但是必须要和属性文件相关联,而且还得在getKeyMethodMap方法中进行key和Action方法的映射,使 ...

  2. Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序

     我们曾经在<Struts1.x系列教程(13):国际化>一文中讲过如何通过编程的方式实现多语言的Web页面.在本文中,我们会介绍另外一种实现多语言Web页面的方法.这种方式与<St ...

  3. STM32 基础系列教程 19 – WWDG

    前言 学习stm32 窗口看门狗(WWDG)接口使用,学会用STM32内部窗口看门狗(WWDG)接口实现程序异常时自复位功能.WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序.窗口看门狗由从 ...

  4. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

    本文为原创,如需转载,请注明作者和出处,谢谢! 本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Strut ...

  5. Struts1.x系列教程:用MyEclipse开发第一个Struts程序

    本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Struts 2.x的相同点和不同点. 在这篇文章中将以一 ...

  6. as3corelib系列教程之一:ArrayUtil类的用法

    as3corelib是一个非常不错的开源开发包,里面封装的类用起来都非常方便,不过可惜的是放出来的下载包里面只有一个关于JSON的Sample,这对于初学者尤其是Flex初学者来说相当的不方便.感谢H ...

  7. 讲给后台程序员看的前端系列教程(19)——CSS的层叠性与继承性以及优先级

    C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...

  8. 大学生极速成长系列教程—7.IT类大学生如何打造个人品牌

    自我营销对于每个职场人都非常重要,如果一个人具有一定的个人品牌,他无论是在职场中,还是在其他方面,都将获得更多的资源和主动权.那大学生在求学阶段需不需要打造个人品牌,让自己在未来职场中占据主动权呢?答 ...

  9. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序(二)

    五.通过模型类操作数据库 在这一节我们来编写用于操作数据库的模型类.由于本例子是Web程序,因此,建议在连接数据库时使用数据库连接池.在<Tomcat安装目录>"conf&quo ...

  10. Struts2教程2:处理一个form多个submit

    在很多Web应用中,为了完成不同的工作,一个HTML form标签中可能有两个或多个submit按钮,如下面的代码所示: <!--[if !supportLineBreakNewLine]--& ...

最新文章

  1. 是什么阻碍了你的 AI 致富路?
  2. vector机器人 WHAT DO VECTOR‘S BACK LIGHTS MEAN? 矢量背光是什么意思?
  3. DFTug - Running the Test DRC Debugger
  4. 苹果浏览器移动端click事件延迟300ms的原因以及解决办法
  5. Deepin v20依赖错误,检测更新失败解决办法
  6. 对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起
  7. java文件复制速度_【Java】Java代码拷贝文件的速度
  8. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御
  9. 2021年中国传送控制器市场趋势报告、技术动态创新及2027年市场预测
  10. 『Python基础』第三节:变量和基础数据类型
  11. html获取手机型号,前端通过js获取手机型号
  12. 阿里云 CentOS 7.4 下部署基于 Node.js 的微信小程序商城
  13. 微分算子法解微分方程
  14. Windows API 教程(七) hook 钩子监听
  15. python stacktrace_pystack--python stack trace--让python打印线程栈信息
  16. Oracle snapper ASH监控工具
  17. 33省市出台区块链专项政策,有地方拿户口、百万奖金抢人
  18. 借贷管理系统-初审阶段
  19. JVM中栈的frames详解
  20. C语言(二):数据类型

热门文章

  1. n-Track Studio Suite 9 Mac(多轨音乐制作工具)
  2. 等保要求的 linux 系统扫描脚本
  3. 使用EasyRecovery简单修复视频
  4. FL Studio20.8.2(水果win10)中文版主要软件更新内容
  5. java单例模式之深入浅出
  6. IEqualityComparerT
  7. 配置zend studio的代码格式化文件及远程单步调试
  8. 苹果mac视频和字幕下载软件:Downie
  9. 苹果Mac摄影照片降噪工具:ON1 NoNoise AI
  10. iOS开发之UIControlEventEditingChanged失效