小编典典

在表单中具有多个提交按钮,并确定在控制器中按下了哪些按钮

jsp

在我的Spring应用程序中,我有一个具有某种形式的jsp,我想要在其中具有多个提交到同一控制器的提交按钮。我需要能够确定控制器中按下了哪个按钮。该表格向用户显示许多项目,他们可以选择其中一个项目,唯一的区别是所选项目的ID。

在jsp中,我正在创建如下形式:

<form:form method="post" commandName="myCommand">

    <c:forEach items="${model.availableitems}" var="item">
      <span class="item">${item.description}</span> 
      <input type="hidden" name="id" value="${item.ID}"/>
      <input type="submit" name="SelectButton" value="Select" />
    </c:forEach>

  </div> 
</form:form>

但是,这在日志中给了我一个“数据绑定错误:1”消息,并且该表单未提交给控制器。

我尝试将myCommand.id从int更改为String,但是提交时的值是id1,id2,id3
…(以逗号分隔的列表中的所有ID),无法确定按下了哪个按钮。随着项目数量的增加,我不想为每个按钮指定不同的操作,并且针对它们的操作都是相同的,只是具有不同的ID。

如何以这种形式具有多个按钮并在控制器中获取值?


阅读 288

收藏
2020-06-10

共1个答案

小编典典

为什么不为每个项目使用单独的表格?

<c:forEach items="${model.availableitems}" var="item">
  <form:form method="post" commandName="myCommand">
    <span class="item">${item.description}</span> 
    <input type="hidden" name="id" value="${item.ID}"/>
    <input type="submit" name="SelectButton" value="Select" />
  </form:form>        
</c:forEach>
2020-06-10