grails - Grails将参数从循环传递到 Controller

标签 grails gsp

在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。此处的几种解决方案展示了如何传递参数,但是当我尝试传递我使用$ {}表示法通过这些解决方案访问的参数时(例如,使用createLinkparams列表,它会崩溃,因为它看起来是嵌套的$ {$ {}}。

最佳答案

您需要将参数更改为:

params="[id: item.id]" 

关于grails - Grails将参数从循环传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595125/

相关文章:

grails - 在 Grails 3 中使用 Sitemesh

html - 如何将输入文本框添加到链接参数?

grails - GSP:检查模型(变量)是否为空不工作

grails - 在gsp中动态选择

grails - Grails Spock无法为模拟类创建对象

grails - GrailsApplicationAware 的使用

spring - 具有 Spring 安全性的属性(property)为空

spring - Grails 3 与并发 session

java - 在没有 Grails 的普通 Spring MVC 中使用 GSP View

variables - 带有变量的Grails FindAllWhere