在我的Grails 3 Controller 中有两个 Action
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
参数的值和新的自定义值。我的问题是:是否可以做一些事情来摆脱原始的值(value),而又没有采取丑陋的解决方法(例如为我的参数使用其他名称)?
最佳答案
我想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.
关于grails - Grails 3-带过滤参数的前进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890452/