如何在Struts2中的一个表单上添加两个提交按钮



我正在使用Struts2开发一个应用程序。我的申请是网上购物。我的任务是更新和删除购物车项目。我有一个JSP页面,它有4个文本字段。我需要将这些文本字段的数据提交给Modify操作。更新和删除提交按钮在同一页面、同一表单中。我如何确定在JSP表单上单击的按钮是哪个?

我的表单是:

<s:form action="ModifyCart">
   <s:textfield readonly="true" name="shoppingCart.item.id" label="Item Code" value="% item.id}"/>
   <s:textfield readonly="true" label="Item Name" value="%{item.itemName}"/>
   <s:textfield name="shoppingCart.qty" value="%{qty}"/>                                                                
   <s:textfield readonly="true" label="Available Quantity" name="shoppingCart.item.qty" value="%{item.qty}"/>
   <s:submit type="button" label="Update" name="submit"/>
   <s:submit type="button" label="Remove" name="clear"/></s:form>

重要信息:

每次提交时,我需要将所有文本字段的数据提交给Action类。

如何在struts2 中的一个表单中添加2个提交按钮

似乎您已经完成了,type="button"意味着button type="submit"是通过Struts标记生成的,但您可以使用type="submit。有关说明,请参阅文档。它们之间没有太大区别,因为它们中的任何一个都提交了表单。如果你想执行操作类的不同操作或方法,那么你可以在submit标记中使用其他属性,如actionmethod

如何确定我在jsp表单上单击的按钮

这取决于你想在客户端或服务器端,或者两者兼而有之。在客户端,您可以使用javascript来处理表单或按钮本身的事件。代码由不同的处理程序分隔,因此在处理程序中,您可以确切地知道触发事件的元素,或者使用对象target属性来确定这一点,就像这个答案一样。在服务器端,您可以使用inputbutton标记的value属性,该属性由name生成并作为参数传递。请注意,并非所有HTML浏览器都使用按钮value属性。

最新更新