Grails 将参数从循环传递到控制器
Grails pass parameter from loop to controller
在 Grails 中,我试图从 (HTML) table 中删除一条记录,我想通过将对象的 ID 传递给控制器来实现此目的。所以在 HTML 中有一个 table 并且用户单击 "delete" 并且该项目从数据库中删除。 (此逻辑根据单元测试工作,问题是从视图 -> 控制器传递 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,但它没有崩溃但正确调用了控制器。例如,当我手动编辑 url 并添加 /4 时,ID 将为四。这里的几个解决方案展示了如何传递参数,但是当我尝试传递一个参数时会出现错误,我使用这些解决方案使用 ${} 表示法访问该参数,例如使用 createLink
和 params
列表,它会使应用程序崩溃,因为它似乎是一个嵌套的 ${${}}。
您需要将参数更改为:
params="[id: item.id]"
在 Grails 中,我试图从 (HTML) table 中删除一条记录,我想通过将对象的 ID 传递给控制器来实现此目的。所以在 HTML 中有一个 table 并且用户单击 "delete" 并且该项目从数据库中删除。 (此逻辑根据单元测试工作,问题是从视图 -> 控制器传递 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,但它没有崩溃但正确调用了控制器。例如,当我手动编辑 url 并添加 /4 时,ID 将为四。这里的几个解决方案展示了如何传递参数,但是当我尝试传递一个参数时会出现错误,我使用这些解决方案使用 ${} 表示法访问该参数,例如使用 createLink
和 params
列表,它会使应用程序崩溃,因为它似乎是一个嵌套的 ${${}}。
您需要将参数更改为:
params="[id: item.id]"