据我所知,不行!
因为Action的接口里只有一个actionform参数,怎么对应多个?

解决方案 »

  1.   

    没见过有多ActionForm存在于Action中的
      

  2.   

    为什么要多个actionform呢?将多个actionform合并成一个actionform不好吗?
      

  3.   

    多个Ation引用一个Form倒还可以
      

  4.   

    可以~
     
    转:
    Java代码 
    package com.awp.test.action;   
      
    import javax.servlet.http.HttpServletRequest;   
    import javax.servlet.http.HttpServletResponse;   
      
    import org.apache.struts.action.ActionForm;   
    import org.apache.struts.action.ActionForward;   
    import org.apache.struts.action.ActionMapping;   
    import org.apache.struts.actions.DispatchAction;   
      
    import com.awp.test.form.FirstForm;   
    import com.awp.test.form.SecondForm;   
      
    /**  
     * @version 1.0  
     * @author awp  
     * @date 2009-4-24 上午11:25:49  
     * @decription 一个Action中包含多个Form   
     */  
    public class MultiFormTestAction extends DispatchAction {   
      
        /**  
         * 第一个Form对应方法  
         */    
        public ActionForward firstForm(ActionMapping mapping, ActionForm form,   
                HttpServletRequest request, HttpServletResponse response){   
                FirstForm   beanform    =   (FirstForm)form;   
                request.setAttribute("name", beanform.getName());   
                return mapping.findForward("display");   
        }   
        /**  
         *  第二个Form对应方法  
         */    
        public ActionForward secondForm(ActionMapping mapping, ActionForm form,   
                HttpServletRequest request, HttpServletResponse response){   
                SecondForm  beanform    =   (SecondForm)form;   
                request.setAttribute("name", beanform.getName());   
                return mapping.findForward("display");   
        }   
    }  package com.awp.test.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DispatchAction;import com.awp.test.form.FirstForm;
    import com.awp.test.form.SecondForm;/**
     * @version 1.0
     * @author awp
     * @date 2009-4-24 上午11:25:49
     * @decription 一个Action中包含多个Form 
     */
    public class MultiFormTestAction extends DispatchAction { /**
     * 第一个Form对应方法
     */ 
    public ActionForward firstForm(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response){
    FirstForm beanform = (FirstForm)form;
    request.setAttribute("name", beanform.getName());
    return mapping.findForward("display");
    }
    /**
     *  第二个Form对应方法
     */ 
    public ActionForward secondForm(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response){
    SecondForm beanform = (SecondForm)form;
    request.setAttribute("name", beanform.getName());
    return mapping.findForward("display");
    }
    }
      Form:Java代码 
    package com.awp.test.form;   
      
    import org.apache.struts.action.ActionForm;   
      
    public class FirstForm extends ActionForm {   
      
        private String  name;   
      
        public String getName() {   
            return name;   
        }   
      
        public void setName(String name) {   
            this.name = name;   
        }   
      
    }  package com.awp.test.form;import org.apache.struts.action.ActionForm;public class FirstForm extends ActionForm { private String name; public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    }} Java代码 
    package com.awp.test.form;   
      
    import org.apache.struts.action.ActionForm;   
      
    public class SecondForm extends ActionForm {   
      
        private String  name;   
      
        public String getName() {   
            return name;   
        }   
      
        public void setName(String name) {   
            this.name = name;   
        }   
      
    }  package com.awp.test.form;import org.apache.struts.action.ActionForm;public class SecondForm extends ActionForm { private String name; public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    }}   struts-cofing.xml Xml代码 
    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"    
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">  
    <struts-config>  
        <form-beans>  
            <form-bean name="firstform" type="com.awp.test.form.FirstForm"/>  
            <form-bean name="secondform" type="com.awp.test.form.SecondForm"/>  
        </form-beans>  
        <global-forwards>  
            <forward name="display" path="/display.jsp"/>  
        </global-forwards>  
        <action-mappings>  
            <action path="/firstpath"  
                    input="/first.jsp"  
                    name="firstform"  
                    parameter="method"  
                    scope="request"  
                    type="com.awp.test.action.MultiFormTestAction"/>  
                       
            <action path="/secondpath"  
                    input="/second.jsp"  
                    name="secondform"  
                    parameter="method"  
                    scope="request"  
                    type="com.awp.test.action.MultiFormTestAction"/>                
        </action-mappings>  
        <message-resources parameter="MessageResources" />    
    </struts-config>  <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" 
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
    <form-beans>
    <form-bean name="firstform" type="com.awp.test.form.FirstForm"/>
    <form-bean name="secondform" type="com.awp.test.form.SecondForm"/>
    </form-beans>
    <global-forwards>
    <forward name="display" path="/display.jsp"/>
    </global-forwards>
    <action-mappings>
    <action path="/firstpath"
    input="/first.jsp"
    name="firstform"
    parameter="method"
    scope="request"
    type="com.awp.test.action.MultiFormTestAction"/>

    <action path="/secondpath"
    input="/second.jsp"
    name="secondform"
    parameter="method"
    scope="request"
    type="com.awp.test.action.MultiFormTestAction"/>
    </action-mappings>
    <message-resources parameter="MessageResources" /> 
    </struts-config> first.jspHtml代码 
    <%@ page language="java" pageEncoding="UTF-8"%>  
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html>  
      <head>  
        <title>我是提交第一个FORM的页面</title>  
      </head>  
      <body>  
       <form action="<%=request.getContextPath()%>/firstpath.do?method=firstForm" method="post">  
        <input name="name" value="" type="text"/>  
        <input name="ok" value="提交" type="submit"/>  
       </form>  
      </body>  
    </html>  <%@ page language="java" pageEncoding="UTF-8"%>
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
      <head>
        <title>我是提交第一个FORM的页面</title>
      </head>
      <body>
       <form action="<%=request.getContextPath()%>/firstpath.do?method=firstForm" method="post">
        <input name="name" value="" type="text"/>
        <input name="ok" value="提交" type="submit"/>
       </form>
      </body>
    </html>
     second.jspHtml代码 
    <%@ page language="java" pageEncoding="UTF-8"%>  
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html>  
      <head>  
        <title>我是提交第二个FORM的页面</title>  
      </head>  
      <body>  
       <form action="<%=request.getContextPath()%>/secondpath.do?method=secondForm" method="post">  
        <input name="name" value="" type="text"/>  
        <input name="ok" value="提交" type="submit"/>  
       </form>  
      </body>  
    </html>  <%@ page language="java" pageEncoding="UTF-8"%>
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
      <head>
        <title>我是提交第二个FORM的页面</title>
      </head>
      <body>
       <form action="<%=request.getContextPath()%>/secondpath.do?method=secondForm" method="post">
        <input name="name" value="" type="text"/>
        <input name="ok" value="提交" type="submit"/>
       </form>
      </body>
    </html> display.jspHtml代码 
    <%@ page language="java" pageEncoding="UTF-8"%>  
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html>  
      <head>  
        <title>显示页面</title>  
      </head>  
      <body>  
      <br />  
       表单提交的内容为:${name} <br /><br />  
       <a href="first.jsp">打开表单1</a><br /><br />  
       <a href="second.jsp">打开表单2</a>  
      </body>  
    </html>  <%@ page language="java" pageEncoding="UTF-8"%>
    <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
      <head>
        <title>显示页面</title>
      </head>
      <body>
      <br />
       表单提交的内容为:${name} <br /><br />
       <a href="first.jsp">打开表单1</a><br /><br />
       <a href="second.jsp">打开表单2</a>
      </body>
    </html>
     Action必须继承DispatchAction,感觉其实一个action还是只能对应一个form这里的方法其实是利用action的path 多个path可以指向同一个action。