Grails - 向 params 映射添加参数

Posted

技术标签:

【中文标题】Grails - 向 params 映射添加参数【英文标题】:Grails - Add a parameter to the params map 【发布时间】:2011-12-09 12:43:51 【问题描述】:

我想在我的params 映射中添加一个参数,并将其余参数绑定到一个链接中。目前,我只经典地绑定params如下:

<g:link class="email" controller="administrator" action="test" params="$params">Link text</g:link>

如何向params 映射添加参数?

提前感谢您的帮助。 问候,

编辑:

好的,我已经找到办法了。

params="$params + ['forwardURI': request.forwardURI]"

我不知道是否还有其他类似 Grails 的方法。如果有的话,我有义务学习它;)

【问题讨论】:

您可能想要更改链接的文本,因为这是相当不合适的。关于主题,您在什么时候尝试绑定数据? 您好 Joseph,如果您坚持,我会删除标签,但是,以这种方式使用“参数”地图,您不会称其为数据绑定吗? BTW Burt,我觉得“我打败了我的妻子”这句话更令人反感 :) 但你的选择 :) :) '13 个字符让我的笑脸被接受' 傻了我,我正在尝试这样做,params="$params.put('forwardURI' ,request.forwardURI)" 没有意识到有不同的方法可以做到这一点在普惠制中 【参考方案1】:

如果您必须重复执行此操作,则可以使用您在 g:link 包装标签库中发布的答案,因为标签库可以访问 paramsrequest

def forwardAwareLink =  attr, body ->
    attr.params = params + ['forwardURI': request.forwardURI]
    out << g.link(attr, body)

在 gsp 中:

<g:forwardAwareLink class="email" controller="administrator" action="test">Link text</g:forwardAwareLink>

如果您想将标签与来自 gsp 的自定义参数映射一起使用,您还可以在标签库中使用以下内容:

attr.params = attr.params + ['forwardURI': request.forwardURI]

【讨论】:

以上是关于Grails - 向 params 映射添加参数的主要内容,如果未能解决你的问题,请参考以下文章

grails框架的g:paginate分页标签的使用

向 Grails 域类添加字段?

GRAILS:findALL() vs FindBy---(params.id)

提交 Grails 表单都有哪些方便的技巧?

将其作为模型传递以在 grails 中查看时的映射问题

@Param注解的使用