grails - Grails 中的 YML 配置始终真实

标签 grails

我正在尝试获取一些 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/

相关文章:

unit-testing - 如何在单元测试中避免使用Grails/Spock进行域调用

json - 由于日期值,Grails LazyMap 到 POJO 的转换失败

grails - 自定义人员类(替换用户名和密码属性)

unit-testing - 模拟 Grails 单元测试的方法

amazon-web-services - 如何在grails中列出所有aws区域

grails - Grails-上线后更新域-我会丢失数据吗?

grails - 无法将 grails 应用程序推送到 heroku master - 权限被拒绝(公钥)

spring - Grails 2.4.3升级-Spring Security ACl-SpelExpressionParser

grails - STS中的JBoss Server和Grails 2.1.0

Grails 集群 quartz 作业示例代码和所需的配置