grails g:link 传递参数
Posted
技术标签:
【中文标题】grails g:link 传递参数【英文标题】:grails g:link pass params 【发布时间】:2011-08-30 09:52:13 【问题描述】:我有这样的事情:
<g:each in="$temp">
<li>Date: $it.dateParticipated, <br>Role: $it.role, <br>Acceptence: $it.accepted, <br>
<g:link controller="conference" action="participated" id="$it.conference.id">
Conference: </g:link>$it.conference,<br>
Role: $it.role, <br>Status: $it.status</li><br>
<br>
</g:each>
我想要做的是,当我点击“会议”时,会加载带有“参与”方法的控制器“会议”,并传递参数“it.conference”。我如何在 g:link 标签中传递这个参数?
我需要这个,因为当我点击“会议”一词时,其他页面会加载会议详细信息并传递 id。
【问题讨论】:
【参考方案1】:使用 params 属性传入参数映射:
<g:link action="/conference/participated" id="$it.conference.id" params="[foo: 'bar', bar: 'foo']">My Link!</g:link>
更多示例请参见the documentation。
【讨论】:
我读过。但我不明白如何通过它传递“it.conference”。 会议是成熟的对象还是原始的? 从文档中看不是很明显,但是您删除引号以引用上一个操作中设置的变量 @barrymac 谢谢你,永远不会猜到。它可以工作,但它非常丑陋,IDEA 甚至将其报告为语法错误,所以如果有人有更好的想法... ;) 未来读者的示例:params="[foo: "$it.bar"]" 这种方式可能不那么难看... :)params="$[foo:it.bar]"
【参考方案2】:
你需要用 $ 包装你的整个参数,而不是包装你想要单独传递的每个变量。
<g:each in="$temp">
<li>Date: $it.dateParticipated, <br>Role: $it.role, <br>Acceptence: $it.accepted, <br>
<g:link controller="conference" action="participated" params="$[id: it.conference.id, role: it.role, status: it.status]">
Conference: </g:link>
<br>
</g:each>
【讨论】:
【参考方案3】:params="[customerId: customer.id]"
【讨论】:
heelo bro 我使用了相同的注释,但我在控制器 ***.com/questions/49855362/… 中得到空值以上是关于grails g:link 传递参数的主要内容,如果未能解决你的问题,请参考以下文章
我可以在返回消息条目字符串和参数之前获取 Grails 消息字符串吗?