【发布时间】:2016-09-09 12:48:34
【问题描述】:
您好,我有以下问题。
我需要收集未发货的订单以在 JSP 文件中读取它们。
当我发布(发布带有 id 的表单以发货...)时,当我在集合中有超过 1 个未发货的订单时出现异常: javax.el.ELException:读取实体类型上的“名称”时出错。Customer_$$_jvstf5f_1 根本原因: org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (request.getParameterValues("ship") != null) {
List<Order> noStockUnshippedOrders = new ArrayList<>();
for (String orderId : request.getParameterValues("ship")) {
try {
Long id = Long.parseLong(orderId);
if (!orderService.setAsShipped(id)) {
noStockUnshippedOrders.add(orderService.read(id));
}
} catch (NumberFormatException e) {
// IF NO LONG DO NOTHING
}
}
request.setAttribute("noStockUnshippedOrders", noStockUnshippedOrders);
}
getUnshippedOrders(request, response);
// GET ON WITH IT
request.getRequestDispatcher(VIEW).forward(request, response);
}
这是我的 JSP 代码:
<!doctype html>
<c:forEach items='${noStockUnshippedOrders}' var='noStockUnshippedOrder'>
<c:url value='/orderdetail.htm' var='orderDetailURL'>
<c:param name='id' value="${noStockUnshippedOrder.id}" />
</c:url>
<tr>
<td class="col-md-1 text-center"><a class="btn btn-danger"
href="<c:out value='${orderDetailURL}'/>"
role="button">${noStockUnshippedOrder.id}</a></td>
<td class="col-md-1">${noStockUnshippedOrder.orderDate}</td>
<td class="col-md-1">${noStockUnshippedOrder.requiredDate}
</td>
<td class="col-md-2">${noStockUnshippedOrder.customer.name}
</td>
<td>${noStockUnshippedOrder.comments}</td>
<td class="col-md-2"><img
src="images/${noStockUnshippedOrder.status}.png">
${fn:toUpperCase(fn:substring(noStockUnshippedOrder.status, 0, 1))}${fn:toLowerCase(fn:substring(noStockUnshippedOrder.status, 1, -1))}
</td>
</tr>
</c:forEach>
【问题讨论】: