我想在一个表单中同时实现添加和更新的功能,应该怎么写代码?
//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>
//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>
<input name="refreshButton" type="submit" value="更新" onlick="document.form2.action='url2';submit()"/>思路这样的,点button时动态改变form的action值
一般传什么值?可以直接传那个value吗?
若是的话后台应该怎么获取这个值呢?是不是和一般action的属性获取方法一样呢,只需设置set和get方法吗?
<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方法分别实现添加和更新功能!
document.forms['form2'].action = ....;
这个跟是不是一表单没什么关系吧。新增时数据是没有主键的,而更新是传入的数据是有主键的(当然你的表没有主键除外)。新建和更新可以放在一个action中,比如你的action="saveDate.action" 对应类的方法为saveOrUpdate
那么你可以在该方法中去判断传入的id是否有(可以隐藏在表单中,新建时肯定是空了,更新是你是先从数据库取出来的,当然是已存在的数据,主键当然有了),有的话你调用update逻辑,没有的话调用save逻辑就行了。
<input name="refreshButton" type="button" value="更新" onlick="javascript:document.form2.action='url2';document.form2.submit();"/>这样应该可以了和2楼差不多
一般都是这么处理的。先取出list然后针对某一条进行编辑。这个怎么会是欺骗用户!!!如果你用的是hibernate那么底层一般调用的都是saveorupdate方法。你不能说hibernate的saveorupdate方法也是投机取巧,欺骗我们吧!
第二:利用struts2 标签实现
<s:form action="">
<s:submit action="actionName" method="actionMethod"/>
<s:submit action="actionName" method="actionMethod"/>
</s:form>
<input name="refreshButton" type="button" value="更新" onlick="javascript:document.form2.action='url2';document.form2.submit();"/>这样应该可以了和2楼差不多 这个说得可以 就是把提交按钮类型改成普通的 button 加个事件 做下判断 更改action的操作