Я использую JSP / Servlet и Hibernate для создания веб-сайтов.
У меня есть 2 класса Product и ProductItem, я могу подсчитать, сколько ProductItem каждого Product, используя основной тег JSTL $ {fn: length (pr.productItemList)}.проблема заключается в том, что когда я удаляю или вставляю ProductItem, список не перезагружается, поэтому результат подсчета не изменяется, но когда я очищаю и строю проект, результат изменяется.
Так что любая идея перезагрузить список, пожалуйста, помогите.
вот мой Класс Продукта
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "ProductID")
private Integer productID;
@Size(max = 100)
@Column(name = "ProductName")
private String productName;
@Size(max = 1000)
@Column(name = "ProductInfo")
private String productInfo;
@Column(name = "Price")
private Float price;
@JoinColumn(name = "BrandID", referencedColumnName = "BrandID")
@ManyToOne
private Brand brandID;
@JoinColumn(name = "CategoryID", referencedColumnName = "CategoryID")
@ManyToOne
private Category categoryID;
@OneToMany(mappedBy = "productID" , fetch = FetchType.EAGER)
private List<ProductItem> productItemList;
здесь мой класс ProductItem
public class ProductItem implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "ProductItemID")
private String productItemID;
@Column(name = "Deleted")
private Boolean deleted;
@JoinColumn(name = "ProductID", referencedColumnName = "ProductID")
@ManyToOne(fetch=FetchType.EAGER)
private Product productID;
вот моя страница product.jsp
<table border="1" cellspacing="0" cellpadding="5">
<caption><h1>List of Product</h1></caption>
<thead>
<tr>
<th>Product ID</th>
<th>Product Amount</th>
<th>Product Name</th>
<th>Product price</th>
<th>Category Name</th>
<th>Brand Name</th>
</tr>
</thead>
<c:forEach items="${list}" var="pr">
<tr>
<td>${pr.productID}</td>
<td>${fn:length(pr.productItemList)}</td>
<td>${pr.productName}</td>
<td>${pr.price}</td>
<td>${pr.categoryID.categoryName}</td>
<td>${pr.brandID.brandName}</td>
</tr>
</c:forEach>
</tbody>
</table>
и мой ProductListServlet
public class ProductListServlet extends HttpServlet {
@EJB
private ProductFacadeLocal productFacade;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setAttribute("list", productFacade.findAll());
request.getRequestDispatcher("Product.jsp").forward(request, response);
}