GString错误 - 如何在程序中使用URL参数[Grails]

时间:2015-04-05 10:38:41

标签: grails configuration

我想通过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: 

如何通过网址参数更改配置?

2 个答案:

答案 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)