Grails 2.4.0错误列表?

时间:2014-05-31 11:59:36

标签: grails

我昨天在2.3.7下使用了这个相同的片段工作正常,但在Grails 2.4.0下它只返回第一个对象。

只是想知道我的结果是否是闪避,或者确实在2.4.0中是否输出了第一行。如果您注释掉countries <<行,则会将其全部打印到控制台,启用该行后,它只返回1条记录。

def listCountries() {
    def countries = []
    def locale = Locale.getAvailableLocales().find { availableLocale ->
        def lang=availableLocale?.getLanguage()?.toString()
        def country=availableLocale.getCountry().toString() ?: lang
        println "---"+lang+"---"+country
        countries << "${lang},${country}"
    }

    render countries
}

1 个答案:

答案 0 :(得分:2)

有很多事情需要关注。首先,countries是列表而不是地图。 :)

listCountries中的逻辑可以按如下方式向下钻取:

def listCountries() {
    render Locale.availableLocales?.collect { 
        "${it.language.toString()},${it.country.toString()}" 
    }
}

find只会在条件满足或评估为Groovy True时返回第一个结果,因此在您的情况下只打印一次。