【发布时间】:2016-08-07 09:38:32
【问题描述】:
我正在使用 grails 3.1.10、spring 安全服务和 mysql。我有表:商店和产品。所以商店在我的桌子上有很多产品。 product_id 是 Shop 表中的 fk。在展示/索引页面上列出了所有商店。当单击商店名称时,它会引导您显示商店属性的商店/显示/ID。 (我将这个发送商店 id 发送到 url)我想要做的是显示属于这家商店的所有产品。 我在我的 shopController 中写了这个方法
def list = {
params.max = Math.min(params.max? params.int('max') : 20, 100)
Product product = Product.get(params.id)
List districts = Shop.findAllByProduct(product)
[productList : districts,
producttInstanceTotal: Product.count()]}
在我的商店/show.gsp 中是
<g:each in="${productList}" status="i" var="p" >
<div class="col-lg-2 col-md-4 col-xs-6 thumb">
<a class="thumbnail" href="#">
<img class="img-rounded" src="http://placehold.it/400x300" alt="">
</a>
<div class='text-center'>
<p><g:link controller="product" action="show" params="[id:p.id]">
${fieldValue(bean: p, field: "productName")}
</g:link></p>
<p>${fieldValue(bean: p, field: "productName")}</p>
<p>${fieldValue(bean: p, field: "productBarcode")}</p>
</div>
</div>
</g:each>
但没有显示。顺便说一句,我使用 generate-all 创建所有控制器和视图。感谢您的帮助
【问题讨论】:
-
你有 def list = { 你应该把它改成 def list() { 它不渲染任何东西,而是将参数输出到它期望的控制器存在的 list.gsp 上姓名。然后您参考 myshop/show.gsp - show.gsp 将绑定到 def show() { } 而不是 def list - 查找 list.gsp 的内容以进行调试 - 同样在您的控制器中添加 println "-- 产品是$product" println "districts is $districts" 在每个元素下看看你是否击中它
标签: mysql grails spring-security