如何从config.groovy文件中定义和访问grails中的数组

时间:2017-01-24 09:15:51

标签: amazon-web-services grails groovy

我的某个控制器中有一个带编码的值

public regions = ['code1','code2']

现在必须从config.groovy文件

中读取这些值

我尝试在config.groovy中定义: -

region = "code1,code2"

在mycontroller中

: -

def aws = grailsApplication.config.awsRegions; 
public awsRegions = aws.split(",")

但它不起作用。

2 个答案:

答案 0 :(得分:4)

在Config.groovy中你可以这样做:

awsRegions = ['Region 1', 'Region 2']

然后在您的控制器中,您可以:

def awsRegions = grailsApplication.config.awsRegions

您的更改不适用于Sathish Kumar的评论,因为您在Config.groovy中将您的财产称为“awsRegion”并使用“grailsApplicatio.config.awsRegion s ”访问它。密钥必须匹配。

答案 1 :(得分:0)

1

public regions = ['code1','code2']

应该不是

public List regions = ['code1','code2']
or 
public List<String> regions = ['code1','code2']

在groovy / grails的世界中public不是必需的,只要它不是静态变量

2

def aws = grailsApplication.config.awsRegions; 
public awsRegions = aws.split(",")

如有疑问:

def aws = grailsApplication.config.awsRegions; 
println  "aws is ${aws} object class is ${aws.getClass()}"

你应该发现println已经在List中返回[element,e2,e3]。 getClass()的东西会告诉你它实际上是什么,所以你应该发现它已经是一个列表而且不需要你在扁平字符串上做的额外拆分