我正在尝试获取一些 YML 配置值,并且我可以确认我获得了正确的值。问题是,当我尝试执行一些 if 语句
时,该值看起来始终为 true
,即使它假设为 false
。我的配置如下:
locale
useLangSubDir: false
代码是:
def language = ""
def useLangSubDir = grailsApplication.config.getProperty("ciab.locale.useLangSubDir")
if (useLangSubDir) { // always true
language = "/" + WebUtils.retrieveGrailsWebRequest().getCurrentRequest().activeLocale
}
最佳答案
default config属性类型(来自 getProperty
的是 String)
因此,您将得到字符串 "false"
,在 Groovy 中,事实是 true
,因为它不为 null 或空。
你需要做:
def useLangSubDir = grailsApplication.config.getProperty("ciab.locale.useLangSubDir", Boolean, false)
将其作为 Boolean
获取(默认值为 false
)
关于grails - Grails 中的 YML 配置始终真实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764638/