快速业务通道

Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

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

时间:2011-01-10 BlogJava 银河使者

有时在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中由提交按钮生成的请求参数名。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号