spring - Spring MVC 发送带有复选框的对象
问题描述
我需要帮助将对象发送到我的列表,该对象是对象租金(列表)的一部分,其中包含我必须租用的所有副本,并且使用表格中的复选框选中了这些副本。但是,当我尝试这样做时,租金中的副本列表始终为空。我怎么解决这个问题?选择客户和日期非常有效,但无法获得列表。 JSP 视图
Jsp页面
...
<form:form action="${pageContext.request.contextPath}/rent/save" enctype="multipart/form-data" method="post" modelAttribute="rentObject">
<div>Select client:</div>
<form:select path="client.clientID">
<div class="container-fluid">
<c:forEach
items="${clients}"
var="p"
varStatus="loop">
<form:option value="${p.clientID}">${p.name} ${p.surname},ID: ${p.clientID}</form:option>
</c:forEach>
</form:select>
<div>Date from:</div>
<div><form:input type="date" id="dateFrom" path="dateFrom"/></div>
<div class="text-danger">
<form:errors path="dateFrom" cssClass="error" />
</div>
<div>Date to:</div>
<div><form:input type="date" id="dateTo" path="dateTo" /></div>
<div class="text-danger">
<form:errors path="dateTo" cssClass="error" />
</div>
<div><button id="save" class="btn btn-primary">Save</button> </div>
<p/>
</div>
<div class="col-sm-7 text-left">
<h2>Copies</h2>
<table id="tabela" class="table table-striped table-bordered table-sm" cellspacing="0" width="100%">
<thead>
<tr>
<th scope="col">Copy ID</th>
<th scope="col">Equipment name</th>
<th scope="col">Equipment picture</th>
<th scope="col">Defect</th>
<th scope="col">Rent</th>
</tr>
</thead>
<tbody>
<c:forEach items="${copiesAll}" var="m" varStatus="loop">
<tr>
<td>${m.copyID}</td>
<td>${m.equipment.name}</td>
<td>
<a href="${pageContext.request.contextPath}/equipment/${m.equipment.equipmentID}/picture" target="_blank">Show picture</a>
</td>
<td>${m.defect}</td>
<td align="center">
<form:checkbox path="copies" value="${m}"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</form:form> ```
租级
@Entity
@Table(name = "rent")
public class Rent implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "rentID")
private int rentID;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Temporal(javax.persistence.TemporalType.DATE)
private Date dateFrom;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Temporal(javax.persistence.TemporalType.DATE)
private Date dateTo;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "clientid")
private Client client;
@OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH, CascadeType.PERSIST})
@JoinColumn(name = "rentid", referencedColumnName = "rentID")
private List<Copy> copies;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "userID", referencedColumnName = "username")
private Worker worker;
public Rent() {
this.copies = new ArrayList<>();
}
...
复制类
@Entity
@Table(name = "copy")
public class Copy implements Serializable {
@ManyToOne(cascade = {CascadeType.DETACH,CascadeType.MERGE},fetch = FetchType.EAGER)
@JoinColumn(name = "equipmentid")
private Equipment equipment;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "copyID")
private Integer copyID;
private boolean working;
private boolean available;
private String defect;
private Integer rentid;
public Copy() {
working = true;
available = true;
defect = null;
}
...
解决方案
推荐阅读
- c++ - 为什么函数返回垃圾值,包括实际输出以及如何清除这些垃圾?
- java - 在或条件之一为假后,执行while循环
- image - 如何通过从不同颜色空间中提取 4 个通道来制作 4 个通道图像?
- javascript - JWT 来自一个网站的无效签名,但另一个网站没有错误。用户对象的额外属性被添加到令牌
- docker - Docker 服务需要在容器创建后重启或重启才能通过暴露端口访问
- r - 从包含 R 中空字符串的 tibble 中删除行?
- .htaccess - 使用 .htacesss 将 domain/* 重定向到 index.html
- python - 在 Python 中的 dict 中创建特定值的总和
- blockchain - Polkadot tx-wrapper 离线签名
- flutter - 如何动态修改文本域中每一行文本的样式?