在Grails中,我试图从(HTML)表中删除一条记录,我想通过将对象的ID传递给 Controller 来实现这一点。因此,在HTML中有一个表,用户单击“删除”,然后从数据库中删除了该项目。 (此逻辑根据单元测试有效,问题是从 View 传递ID-> Controller )
我尝试了几种在这里找到的解决方案,例如
<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的值,但不会崩溃,但可以正确调用 Controller 。例如,当我手动编辑url并添加/ 4时,ID为4。此处的几种解决方案展示了如何传递参数,但是当我尝试传递我使用$ {}表示法通过这些解决方案访问的参数时(例如,使用
createLink
和params
列表,它会崩溃,因为它看起来是嵌套的$ {$ {}}。
最佳答案
您需要将参数更改为:
params="[id: item.id]"
关于grails - Grails将参数从循环传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595125/