2017-07-03 128 views
0

在我的Grails 3 控制器转发有两个行动Grails的3 - 用过滤PARAMS

def one() { 
    forward([ action: 'two', params: [ a: 3 ] ]) 
} 

def two() { 
    println params 
} 

当我打电话/myController/one?a=1,印刷PARAMS是

[a:[3, 1], controller:myController, action:two] 

说我是莫名其妙惊讶于这个结果,我通过改变one的动作如下

def one() { 
    params.remove('a') 
    println params 
    forward([ action: 'two', params: [ a: 3 ] ]) 
} 

两个println S组合显示

[controller:myController, action:one] 
[a:[3, 1], controller:myController, action:two] 

后者再次includign无论是原a参数的值和新的自定义值。

我的问题是:有什么我可以做的摆脱原来的价值,没有把丑陋的解决方法到位(就像使用不同的名称为我的参数)?

+0

查看讨论https://github.com/grails/grails-core/issues/10231 –

+0

感谢您的意见!在Grails问题中深入挖掘之后,我发现了一个针对我的问题(下面) – ilPittiz

回答

1

我猜this comment从格雷姆罗彻平息对整体可行性任何疑问:

远期应该将所有的起源则params的[...]

但是没有办法用当前servlet用于“覆盖”参数的方式,原始文件始终保留在前进中。