当我在控制器中获得实体“产品”时,我拥有所有空数据。
@GetMapping("/admin/product/delete")
public ModelAndView showProductDeletePage(
@RequestParam String productId
){
Long longId = Long.parseLong(productId);
Product product = productService.getProductById(longId);
ModelAndView modelAndView = new ModelAndView("/admin/product/delete");
modelAndView.addObject("product", product);
return modelAndView;
}
但是,在字符串中
modelAndView.addObject("product", product);
我将产品发送到表单。
<div class="w3-container">
<form th:action="@{'/admin/product/delete?productId=' + ${product.getId()}}" method="post">
<h2>Delete product</h2>
<p>If you submit, product will be deleted irrevocably</p>
<div th:text = "${product.getProductName()}" class="w3-panel w3-card-4"><p>w3-card-4</p>
</div>
<a href="/" class="w3-button w3-green">Cancel</a>
<input class="w3-button w3-red" type="submit" value="Delete"/>
</form>
</div>
例如,在字符串中
<div th:text = "${product.getProductName()}" class="w3-panel w3-card-4"><p>w3-card-4</p>
<form th:action="@{'/admin/product/delete?productId=' + ${product.getId()}}" method="post">
我的应用程序没有问题,并正确返回了屏幕数据。
其中的一个问题是,在其他情况下我无法使用该实体。一般来说-怎么可能??
答案 0 :(得分:1)
Hibernate使用实体的代理,当前您正在查看代理。代理本身的行为类似于Product
,但不包含实际数据。 handler
中存在该内容。
如果您点击handler
,最终将到达实际的Product
实例。
答案 1 :(得分:0)
可能的原因是:
您无法用描述问题的方式添加调试器/断点来缩小问题范围。