在Grails中我试图从(HTML)表中删除记录,我想通过将对象的ID传递给控制器来实现这一点。因此,HTML中有一个表,用户单击“删除”,该项目将从数据库中删除。 (这个逻辑根据单元测试工作,问题是从视图中传递ID - >控制器) 我在这里尝试了几种解决方案,例如
<g:each in="${recipe}" var="item">
<tr>
<td>
${item.recipeName}
</td>
<td>
${item.people}
</td>
<td>
<g:link controller="UserRecipe" action="delete" params="[id: '${item.id}']" class="class">Info to Display</g:link></tr>
</g:each>
虽然id = null的值,但它不会崩溃但会正确调用控制器。当我手动编辑网址并添加/ 4时,ID将为4。这里的几个解决方案展示了如何传递参数,但是当我尝试使用这些解决方案使用$ {}表示法访问参数时,错误就会产生,例如:使用createLink
和params
列表会使应用程序崩溃,因为它似乎是嵌套的$ {$ {}}。
答案 0 :(得分:1)
您需要将参数更改为:
params="[id: item.id]"