如果我有外部包含
<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
它甚至适用于值不是列表的情况,并且在没有给出值时也不会失败