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

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



 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214848,如需转载请自行联系原作者

相关文章
|
前端开发 JavaScript Java
【前端】form标签multipart/form-data 文件上传表单中 传递参数无法获取的原因
form标签multipart/form-data 文件上传表单中 传递参数无法获取的原因
743 1