Java 我如何知道单击了哪个提交按钮

Java 我如何知道单击了哪个提交按钮,java,forms,jsp,servlets,input,Java,Forms,Jsp,Servlets,Input,我在一个表单标记中的JSP上有几个不同的提交按钮,它们都指向同一个servlet。我需要知道单击了哪个提交按钮。如何确定单击了哪个按钮?每个提交按钮应具有不同的名称: <input type="submit" value="This is a submit button" name="submit1"> <input type="submit" value="Another submit button" name="submit2"> <input type="su

我在一个表单标记中的JSP上有几个不同的提交按钮,它们都指向同一个servlet。我需要知道单击了哪个提交按钮。如何确定单击了哪个按钮?

每个提交按钮应具有不同的
名称:

<input type="submit" value="This is a submit button" name="submit1">
<input type="submit" value="Another submit button" name="submit2">
<input type="submit" value="Yet another submit button!" name="submit3">

如果request.getParameter(“按钮名称”)不为空,则这是按下的按钮

这类似于Struts中的DispatchAction。他们所做的是有一个隐藏字段,当您提交表单时,让onClick()设置值以指定采取的操作

<input type="hidden" name="dispatchAction"/>
<input type="submit" value="Edit"   onClick="setDispatchAction('edit')">
<input type="submit" value="Delete" onClick="setDispatchAction('delete')">

一些文本
其他一些文本

您将把post变量“somename”设置为相应的值,而不管显示的值是多少。

它们是标记还是?您关心javascript中控制器中的这一点吗?IE6会为所有标记发送一个值,无论单击与否,它都不会出现在查询字符串中。警告:MSIE会发送按钮主体的“一些文本”或“其他一些文本”作为参数值,而不是
属性!您不应该为所有按钮提供相同的名称,而是不同的名称,并且仅在按钮名称出现时截取。即,如果按钮名称不为null,则按下按钮;如果按钮名称为null,则不按下按钮。
<input type="hidden" name="dispatchAction"/>
<input type="submit" value="Edit"   onClick="setDispatchAction('edit')">
<input type="submit" value="Delete" onClick="setDispatchAction('delete')">
<button type="submit" name="somename" value="button1">some text</button>
<button type="submit" name="somename" value="button2">some other text</button>