为什么Grails将嵌套的g:include标签参数合并到一个列表中

时间:2017-01-17 18:21:32

标签: grails

如果我有外部包含

<g:include controller="video" action="list" params="[page:1,size:6]"/>

在其视图中包含另一个控制器

<g:include controller="actor" action="list" params="[page:1,size:3]"/>

如果ActorController具有相同的名称,则会合并它们的参数。 所以在上面的例子中

params.size == [3, 6]

但我希望它只是 3 。如果我将精确的包含从actor移到顶层,它的行为就像预期的那样。

这是什么行为?可以关掉吗?我们可以走动吗?这是一个错误吗?

编辑:我使用的是最近的Grails版本3.2.4

EDIT2:我现在创建了一个grails 3.2.4项目,可以重现这一点。

git clone https://github.com/aistomin/includes-bug.git

打开localhost:8080并检查控制台是否有消息。

EDIT3:来自@vahid的解决方法确实很棒

params.list('page')[0]
// instead of
params.page

它甚至适用于值不是列表的情况,并且在没有给出值时也不会失败

0 个答案:

没有答案