我想在一个表单中同时实现添加和更新的功能,应该怎么写代码?
//form表单
<form id="form2" name="form2" action="">    <tr>
      <td 
      <center>
                  <input name="addButton" type="submit"  value="添加" />
         <input name="refreshButton" type="submit"  value="更新" />
      </center>
      </td>
    </tr>
  </table>
</form>//struts.xml<package name="1"  extends="struts-default">
       <action name="search" class="rtcrud.SearchInfo">
            <result name="success">/showInfo.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
</package>

解决方案 »

  1.   

    你不能把添加和更新从前端传参数至后台,action根据判断去执行(具体是添加还是更新)?
      

  2.   

    <input name="addButton" type="submit" value="添加" onlick="document.form2.action='url1';submit()"/>
    <input name="refreshButton" type="submit" value="更新" onlick="document.form2.action='url2';submit()"/>思路这样的,点button时动态改变form的action值
      

  3.   


    一般传什么值?可以直接传那个value吗?
    若是的话后台应该怎么获取这个值呢?是不是和一般action的属性获取方法一样呢,只需设置set和get方法吗?
      

  4.   

    表单:
    <form action="baocun.action" method="post">
      <input type="submit" value="添加"/>
      </form>
      <hr>
      <b>用户密码修改:</b><br>
       <form action="xiugai.action" method="post"> 
      <input type="submit" value="更新">
      </form>
    struts.xml:
    <action name="baocun" class="com.wiew.UserView" method="execute1">
      <result name="no">
       <param name="location">/index.jsp</param>
      </result>
     </action>
     
     <action name="xiugai" class="com.wiew.UserView" method="execute2">
      <result name="no">
       <param name="location">/index.jsp</param>
      </result>
     </action>execute1方法和execute2方法分别实现添加和更新功能!
      

  5.   

     var formAction = document.forms['form2'].action;
     document.forms['form2'].action = ....;
      

  6.   


    这个跟是不是一表单没什么关系吧。新增时数据是没有主键的,而更新是传入的数据是有主键的(当然你的表没有主键除外)。新建和更新可以放在一个action中,比如你的action="saveDate.action" 对应类的方法为saveOrUpdate
    那么你可以在该方法中去判断传入的id是否有(可以隐藏在表单中,新建时肯定是空了,更新是你是先从数据库取出来的,当然是已存在的数据,主键当然有了),有的话你调用update逻辑,没有的话调用save逻辑就行了。
      

  7.   

    <input name="addButton" type="button" value="添加" onlick="javascript:document.form2.action='url1';document.form2.submit();"/>
    <input name="refreshButton" type="button" value="更新" onlick="javascript:document.form2.action='url2';document.form2.submit();"/>这样应该可以了和2楼差不多
      

  8.   


    一般都是这么处理的。先取出list然后针对某一条进行编辑。这个怎么会是欺骗用户!!!如果你用的是hibernate那么底层一般调用的都是saveorupdate方法。你不能说hibernate的saveorupdate方法也是投机取巧,欺骗我们吧!
      

  9.   

    第一:利用javascript实现 基本同上
    第二:利用struts2 标签实现
    <s:form action="">
      <s:submit action="actionName" method="actionMethod"/>
      <s:submit action="actionName" method="actionMethod"/>
    </s:form>
      

  10.   

    <input name="addButton" type="button" value="添加" onlick="javascript:document.form2.action='url1';document.form2.submit();"/>
    <input name="refreshButton" type="button" value="更新" onlick="javascript:document.form2.action='url2';document.form2.submit();"/>这样应该可以了和2楼差不多  这个说得可以  就是把提交按钮类型改成普通的 button 加个事件 做下判断 更改action的操作