Grails 3 - 转发过滤参数

Grails 3 - forward with filtered params

在我的 Grails 3 controller 中有两个 actions

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 参数的值和新的自定义值。

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

我想来自 Graeme Rocher 的 this comment 解决了对整体可行性的任何疑问:

A forward is supposed to forward all of the origin params [...]

However there is no way with the way current servlets work to "override" a parameter, the originals are always retained on a forward.