在我的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
参数的值和新的自定义值。
我的问题是:我是否可以做些什么来摆脱原始值,而不会使用丑陋的变通方法(比如为我的参数使用不同的名称)?
答案 0 :(得分:1)
我猜Graeme Rocher的this comment解决了对整体可行性的疑虑:
前锋应该转发所有原始参数[...]
然而,当前的servlet无法“覆盖”参数,原始文件始终保留在转发上。