问题是这样的,我有一个表单,但是却有两个完成不同功能的submit,他们完成的功能不一样,但是都需要表单上的数据来完成功能。请各位高手指点

解决方案 »

  1.   

    用LookupDispatchAction可以完成此功能。
      

  2.   


    <html:submit property="name1"></html:submit>
    <html:submit property="name2"></html:submit> public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest req, HttpServletResponse res) throws Exception {
         if(StringUtils.equals(req.getParameter("name1"), "name1")){
                //do something
            }else if(StringUtils.equals(req.getParameter("name2"), "name2")){
                //do something
            }
            
        //......
    }
      

  3.   

    简单方法就是用js来实现,对不同按钮提交的先判断后提交,对于正规(你用了框架)一些的就利用struts1的LookupDispatchAction来完成但是比较麻烦,需要隐射并且按钮关联到资源文件。如果是struts2就比较简单在struts2的配置文件中例子如下:
    将Action类中的每一个处理方法都定义成一个逻辑Action方法。
    <!DOCTYPE struts PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
           "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    <package name="my" extends="struts-default" namespace="/manage">
           <action name="userLogin" class="org.qiujy.web.struts2.action.LoginAction" method="login">
             <result name="success">/success.jsp</result>
             <result name="error">/error.jsp</result>
           </action>
          
           <action name="userRegist" class="org.qiujy.web.struts2.action.LoginAction" method="regist">
             <result name="success">/success.jsp</result>
             <result name="error">/error.jsp</result>
           </action>
    </package>
    </struts>
    如上,把LoginAction中的login和regist方法都配置成逻辑Action。要调用login方法,则相应的把index.jsp中表单元素的action设置为"manage/userLogin.action";要调用regist方法,把regist.jsp中表单元素的action设置为"manage/userRegist.action"。 
      

  4.   

    加一个hidden的字段标识功能,提交的时候根据不同的按钮调用JS把hidden的字段值修改,然后再提交
      

  5.   


          <action name="userLogin" class="org.qiujy.web.struts2.action.LoginAction" 这里不配method>
            <result name="success">/success.jsp </result>
            <result name="error">/error.jsp </result>
          </action><s:form action="userLogin" >
    <s:submit value=" save" 这里配 method=“save”>
    <s:submit value=" update" 这里配 method=“update”>
    </s:form>这样就可以一个form完成两个功能提交,struts1 通楼上的介绍
    貌似lz 的意思是只有一个form,同一楼上的说法,但是struts2 只有一个form两个不同功能提交按钮的话
      

  6.   

    去看这个帖子的第35楼代码,是一不错的方案:
    http://topic.csdn.net/u/20091016/14/d466dc26-7ca0-4006-b413-83e1cb63547d.html
      

  7.   

    JavaScript来判断按钮的id  就可以调用不同的方法了
      

  8.   

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'main.jsp' starting page</title>
      </head>
      <script type="text/javascript">
      function add(){
       location.replace("/cfr_ex04/allAction.do?method=toAdd");
      }
      function mod(obj){
       var url_mod=encodeURI("/cfr_ex04/allAction.do?method=toMod&id="+obj);
    window.location.replace(url_mod);
      }
      function search(){
    var name=document.getElementById('search1').value;
    var url_sear=encodeURI("/cfr_ex04/allAction.do?method=toSearch&name="+name+"");
    window.location.replace(url_sear);
    }
     
      </script>
      <body>
      <form action="/cfr_ex04/allAction.do?method=toSearch" method="post">
      ${msg}
      <table>
      <tr><td></td><td>员工姓名</td><td>性别</td><td>所属部门</td><td>办公室</td></tr>
        <c:forEach items="${list}" var="user">
         <tr ondblclick="mod(${user.empId})">
         <td><input type="checkbox" name="check" value="${user.empId}"></td>
         <td>${user.empName}</td>
         <td>${user.empSex}</td>
         <td>${user.department.depName}</td>
         <td>${user.department.depOffice}</td>
         </tr>
        </c:forEach>
     </table>
      <input type="button" value="添加员工信息" onclick="add()"><br/>
      <!--<input type="" value="删除" ><br/>-->
      请输入姓名进行查询:<input type="text" id="search1" name="search1"><input type="submit" value="查询" >
      </form>
      </body>
    </html>
      

  9.   

    用javaScript来进行跳转
    按钮1 :
       <input type = "button" value = "提交至页面1" onClick = "subOne(<%=提交的数据%>)"/>
    按钮2 :
      <input type = "button" value = "提交至页面1" onClick = "subTwo(<%=提交的数据%>)"/>
    javaScript代码:  function subOne(obj){
        var 表单数据 = document.getElementById("name").value;//
        window.location.href="index.jsp?id="+obj+"&name="+表单数据;
      }
      function subTwo(obj){
      var 表单数据 = document.getElementById("name").value;//
        window.location.href="indexTwo.jsp?id="+obj+"&name="+表单数据;
      }用小脚本的方式给onClick事件赋参数,用javaScript进行页面的跳转,javaScript里面的网页地址同样可以用servlet程序代替