我想通过URL参数更改配置,并尝试如下。
在控制器
中class TestController {
def grailsApplication
def changeConfig{
Map testConfig = grailsApplication.config.test
def accountConfig = testConfig.${params.account}
}
}
在Config.groovy中
test {
'default' {
debug = false
Key = 'aaa'
}
'another' {
debug = true
Key = 'bbb'
}
}
然后,我想通过运行如下所示的URL来更改配置
http://localhost/myApp/test/changeConfig?account=another
但是,此代码会产生如下错误。
Class groovy.lang.MissingMethodException
Message No signature of method: groovy.util.ConfigObject.$() is applicable for argument types:
如何通过网址参数更改配置?
答案 0 :(得分:3)
不确定它是否有效,但你的行
def accountConfig = testConfig.${params.account}
错了,应该是
def accountConfig = testConfig."${params.account}"
答案 1 :(得分:1)
您可以将ConfigObject视为地图。所以你也可以这样做。
Map testConfig = grailsApplication.config.test
def accountConfig = testConfig[params.account]
或
def accountConfig = testConfig.get(params.account)