gpt4 book ai didi

java - 如何使用 Spring MVC 将列表中的项目绑定(bind)到表单 modelAttribute

转载 作者:行者123 更新时间:2023-11-29 03:15:21 24 4
gpt4 key购买 nike

我已经搜索过但找不到任何类似的东西,或者我正在搜索错误的东西。我正在从我的 Controller 返回一个项目列表以显示在我的 jsp 中。在我的 jsp 表中,我希望列表中的每个项目都有一行,如下所示:

<tbody>
<c:forEach items="${productList}" var="product" varStatus="status">
<tr>
???? This next line is seudo-code. I dont know how to bind the item to form ???
<form:form method="post" modelAttribute="${productList}[status.index]">
<td><form:input path="price" class="input-mini" type="text" /></td>
<td><button id="save" name="save"></td>
</form
</tr>
</c:forEach>
</tbody>

然后我的 Controller 将有一个 RequestMethod.POST 来处理保存操作。这可能吗?如果可以,有人可以帮我指出正确的方向。

这可能吗 我不确定如何将列表中的项目绑定(bind)到表单。

最佳答案

按照@tofindabhishek 的建议并仍然希望允许每行编辑,我最终实现了一个解决方案,其中包含用于保存、编辑和删除每行的行内按钮,并将发布时的项目 ID 传递回 Controller 。这是我的表体。它使用数据表、 Bootstrap 并打开完整编辑表单的模式。总共提供了一个非常丰富的 CMS IMO:

<tbody>
<c:forEach items="${productManagerForm.products}" var="product" varStatus="status">
<c:url value="/product/detail/${product.id}" var="detailUrl" />
<tr>
<td><a href="${detailUrl}">${product.id}</a> <form:hidden path="products[${status.index}].id" value="${product.id}" /></td>
<td><form:input path="products[${status.index}].name" class="input-xlarge" type="text"/></td>
<td><form:input path="products[${status.index}].price" class="input-mini" type="text" /></td>
<td><form:input path="products[${status.index}].shippingPrice" class="input-mini" type="text" /></td>
<td><button id="save" name="save" value="${product.id}" class="btn btn-success"><i class="fa fa-save"></i> Save </button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#editProduct${product.id}"><i class="fa fa-edit"></i> Edit</button>
<button id="delete" name="delete" value="${product.id}" class="btn btn-danger"><i class="fa fa-trash-o"></i></button>
</td>
</tr>
</c:forEach>
</tbody>

screenshot of table

这是我的一个 POST 处理程序,从这里您可以看到我如何使用 RequestMapping 映射处理程序和 RequestParam 来绑定(bind) Id:

@RequestMapping(method = RequestMethod.POST, params = "delete")
public String deleteProduct(@RequestParam(value = "delete") int deleteProductId) {
Product product = productService.findProduct(deleteProductId);
productService.deleteProduct(product);
...
}

关于java - 如何使用 Spring MVC 将列表中的项目绑定(bind)到表单 modelAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27052236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com