将字符串传递给服务层中的grailsApplication.config

时间:2013-02-13 07:32:33

标签: grails properties

任何人都可以知道如何将字符串作为参数传递给grailsApplication.config。

 I have tried the following.

class ConfigPropertiesLoader {
   def grailsApplication

   def getProperty(String property ){
           def properties=grailsApplication.config.${property}

    return properties;
}

这是我得到的错误,

   Error 2013-02-13 12:59:29,850 [http-bio-8080-exec-10] ERROR 0].[grails]  -    Servlet.service() for servlet grails threw exception
   Message: Cannot get property 'config' on null object
   Line | Method
   ->>   30 | getProperty      in    com.nagra.ms.sam.config.ConfigPropertiesLoader$$ENxJABt5

   |     51 | <init>           in com.nagra.ms.sam.entity.account.controller.AccountController
   |    196 | getBean . . . .  in grails.plugin.cache.web.filter.AbstractFilter
   |    842 | lookupController in grails.plugin.cache.web.filter.PageFragmentCachingFilter
   |    176 | doFilter . . . . in     ''
   |     63 | doFilter         in grails.plugin.cache.web.filter.AbstractFilter
   |   1110 | runWorker . . .  in java.util.concurrent.ThreadPoolExecutor
   |    603 | run              in java.util.concurrent.ThreadPoolExecutor$Worker
   ^    722 | run . . . . . .  in java.lang.Thread

1 个答案:

答案 0 :(得分:4)

我不确定我是否理解您的确切问题,因此我将为您列出几种不同的解决方案:

考虑Config.groovy中的以下两个条目

feedbackAddress="xyz@abcdefg.com"

blogs = {groupName->
        if(groupName == 'IT') {
            //return blog URLs for IT folks
        } else if(groupName == 'UX') {
            //return blog URLs for UX folks
        } else {
            //return others
        }
    }

案例1:使用String作为配置名称。您可以访问feedbackAddress,如:

def feedbackAddress = grailsApplication.config["feedbackAddress"]

案例2:将参数传递给配置。您可以列出特定组的博客,如:

def groupName = "IT"
grailsApplication.config.blogs(groupName) //this will give you whatever's defined in the IT block of config.

希望这会有所帮助..