我不太确定如何解决这个问题。我有一个由填充了产品信息的数据表呈现的表。我试图找出一个表格,我可以插入数量和折扣值,然后保存所选字段或数量> 0.然后将表数据绑定到一个集或列表。
但是,我不太清楚如何编写绑定。我在这里已经阅读了这个question,但它似乎并不相同,因为我认为我不能使用索引,因为可能有大量的产品,因此可能会有大量的产品响应中的空值。任何帮助,将不胜感激。
Product.java
@Entity
@Table(name="products")
public class Product {
@Getter
@Setter
@Id
private Long productId;
@Getter
@Setter
private Long productName;
}
QuoteForm.java
public class QuoteForm {
@Getter
@Setter
private Long quoteId;
@Getter
@Setter
private Long contactId;
@Getter
@Setter
private Set<ProductEntry> products;
}
ProductEntry.java
public class ProductEntry {
@Getter
@Setter
private TempProduct product;
@Getter
@Setter
private Long quantity;
@Getter
@Setter
private float discount;
}
form.html
<form id="productTable" th:object="${quoteForm}">
<input type="number" th:field="*{contactId}"></input>
<table id ="productList"
class="table table-striped table-bordered"
cellspacing="0"
width="100%">
<thead>
<tr>
<th>Name</th>
<th>Quantity</th>
<th>Discount</th>
</tr>
</thead>
<tbody>
<tr th:each="product : ${productData.getProducts()}">
<td name="?">
<a th:text="${product.getProductName()}"
th:href="@{|/product/records/${product.getProductId()}|}">
</a>
</td>
<td>
<input type="number"
name="?"
th:field="*{products.quantity}">
</input>
</td>
<td>
<input type="number" name="?" th:field="*{products.discount}"></input>
</td>
</tr>
</tbody>
答案 0 :(得分:0)
您可以使用“model.addAttribute()”进行绑定。在您的控制器中有这样的东西:
@RequestMapping("/example")
public String formParse(Model model) {
//some logic
Set<ProductEntry> productList = //code to get();
model.addAttribute("productList", productList);
//some more logic
return "yourView";
}
此处“productList”是您已分配给“?”的名称。 至于检查数量,您可以在表单中执行此操作,例如:
<div th:if="*{products.quantity>0}" th:field="*{products.quantity}"></div>
此处&amp; gt代表“大于”。 希望这有帮助!