我只是想知道是否可以从配置文件(如config.groovy或其他配置文件)中设置Grails控制器中变量的值?
例如,我的控制器如下:
class WebsiteController {
def show(){
String user_name = "value to be fetched from configuration file"
}
}
在这里,我想从配置文件中设置user_name的值。我不知道该怎么做。 我的老人给了我这个要求。我在网上搜索但找不到相关内容。如果有可能,请告诉我方法。 感谢
答案 0 :(得分:4)
以下是添加到Config.groovy的属性示例:
environments {
development {
tipline.email.address="joe@foo.us"
grails.logging.jul.usebridge = true
}
staging {
tipline.email.address="mailinglist@foo.us"
grails.logging.jul.usebridge = true
}
production {
tipline.email.address="mailinglist@foo.us"
grails.logging.jul.usebridge = false
// TODO: grails.serverURL = "http://www.changeme.com"
}
}
要在您的代码中访问它们:
println("Email :"+grailsApplication.config.tipline.email.address)
答案 1 :(得分:1)
属性是properties =)
Properties properties = new Properties()
File propertiesFile = new File('test.properties')
propertiesFile.withInputStream {
properties.load(it)
}
def runtimeString = 'a'
assert properties."$runtimeString" == '1'
assert properties.b == '2'
答案 2 :(得分:1)
另一种可能性是使用property override configuration:
将参数注入控制器// Config.groovy:
website.user = "me"
beans {
'<replace by package>.WebsiteController' {
userName = website.user
}
}
// Controller:
class WebsiteController {
String userName
def show(){
//.. use userName ..
}
}
在这种情况下,您不需要grailsApplication
,并且您不需要在控制器中对配置路径进行硬编码。较少的依赖性使测试更容易。 :)