Java JSP以单一形式使用不同API的多个按钮

Java JSP以单一形式使用不同API的多个按钮,java,api,rest,jsp,controller,Java,Api,Rest,Jsp,Controller,在一个JSP表单中放置多个按钮时,我遇到了一些问题 <form:form action="/search" method="POST"> <tr> <td align="left"> <input type="button" onclick="valSubmit('doImageExtractSearchList', this.form);" value

在一个JSP表单中放置多个按钮时,我遇到了一些问题

<form:form action="/search" method="POST">

<tr>
<td align="left">
<input type="button" onclick="valSubmit('doImageExtractSearchList', this.form);" value="Image Extract" />
</td>

<td align="right">
<input type="button" onclick="valSubmit('doCardIssueSearchList', this.form);" value="Card Search" /> 
</td>
</tr>

</form:form>

谢谢

既然您已经在单击时触发了函数调用,为什么不使用该函数对后端api进行Ajax调用呢。这样,您就可以根据传递到jquery方法中的参数为POST调用提供单独的url,如下所示:

function valSubmit(value, form) {
var url;
if(value == "doImageExtractSearchList") {
  url = "http://something/search/imageExtract";
}
else if(value == "doCardIssueSearchList") {
  url = "http://something/search/cardExtract";
}
var form = $('#formId');
var data = form.serialize();

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(result) {
    alert('ok');
  },
  error: function(result) {
    alert('error');
  }
});
}

可能在点击按钮时,使用js将表单<代码>操作更改为特定的按钮值,以便控制器只调用特定的方法?您是否有任何示例在js中设置API url以便控制器类可以接收它?下面提供的答案也是一种方法,或者只使用
$(“表单”).attr(“操作”,“你需要被拒绝”)
单击更改操作标签buton@hyperfkcb没问题。在这种情况下,我可以和您核对一下吗?我如何提取控制器类中传递的数据并与@modeldattribute一起使用?@hyperfkcb默认情况下,
数据
将是一个查询字符串,您可以将其提取为请求参数。但是如果您愿意,您可以使用
JSON.Stringify(数据)
如果要将ajax数据设置为json,请将
procesData
标记设置为false,并将datattype设置为json,以便在请求正文中也将数据作为json发送,在这种情况下,请使用
@RequestBody
注释提取备份的数据。@hyperfkcb希望答案适合您的情况,并且您能够在请将答案标记为已接受。
function valSubmit(value, form) {
var url;
if(value == "doImageExtractSearchList") {
  url = "http://something/search/imageExtract";
}
else if(value == "doCardIssueSearchList") {
  url = "http://something/search/cardExtract";
}
var form = $('#formId');
var data = form.serialize();

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(result) {
    alert('ok');
  },
  error: function(result) {
    alert('error');
  }
});
}