Grails 3 - 向前过滤的params

时间:2017-07-03 16:38:27

标签: grails parameters forward grails-controller

在我的Grails 3 控制器中有两个动作

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

def two() {
    println params
}

当我致电/myController/one?a=1时,打印的参数是

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

说我对这个结果感到有些惊讶,我继续改变one行动如下

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

两个println组合显示

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

后者再次包括原始a参数的值和新的自定义值。

我的问题是:我是否可以做些什么来摆脱原始值,而不会使用丑陋的变通方法(比如为我的参数使用不同的名称)?

1 个答案:

答案 0 :(得分:1)

我猜Graeme Rocher的this comment解决了对整体可行性的疑虑:

  

前锋应该转发所有原始参数[...]

     

然而,当前的servlet无法“覆盖”参数,原始文件始终保留在转发上。