我正在尝试获取一些YML配置值,并且可以确认获得了正确的值。问题是当我尝试执行一些if statement时,即使它是always true,它的值也似乎是suppose to be 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 - YML配置在Grails中始终是真实的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44764638/

10-12 02:16