ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【原创】Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit

【原创】Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit

原创 Linux操作系统 作者:银河使者 时间:2009-05-11 21:18:33 0 删除 编辑
本文为原创,如需转载,请注明作者和出处,谢谢!

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

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><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>
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 其中submit.printsubmit.save是属性文件中的keyaction实际上是提交按钮的name属性值。在提交时,会将property作为请求参数和参数值传给Struts动作。如save按钮被单击时,请求URLhttp://localhost:8080/.../myaction.do?action=save。其中savesubmit.save在属性文件中对应的属性值,也就是说submit.save = save

    接下来我们编写一个LookupDispatchAction的子类,代码如下:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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代码
      } 
  }

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

在编写LookupDispatchAction的子类时要注意必须实现getKeyMethodMap方法,在这个方法中需要进行keyAction方法的映射。下面的代码用来配置MyLookupDispatchAction

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><action path="/moresubmit" type="action.MyLookupDispatchAction" parameter="action" />

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

    其中parameter属性指定了请求URL中由提交按钮生成的请求参数名。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12921506/viewspace-594771/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-02-08

  • 博文量
    169
  • 访问量
    1054860