我很难找到groovy的findAll示例。我有一个非常好的 简单的代码片段,它获取节点的属性并输出它 值。除了我在循环时只获得最后一个值 一系列的属性。这是我在做错的事吗 看起来很简单。
JcrUtils.getChildNodes("footer").findAll{
selectFooterLabel = it.hasProperty("footerLabel") ? it.getProperty("footerLabel").getString() : ""
}
在我的jsp中,我只是打印属性:
<%=selectFooterLabel%>
感谢您的帮助!
答案 0 :(得分:2)
findAll
返回一个List
,其中包含原始列表中闭包返回Groovy-true值的所有项(布尔值为true,非空字符串/ map / collection,非null任何内容)其他)。看起来你可能想要collect
def footerLabels = JcrUtils.getChildNodes("footer").collect{
it.hasProperty("footerLabel") ? it.getProperty("footerLabel").getString() : ""
}
将为您提供闭包返回的值的列表。如果您只想要那些非空的子集,则可以使用findAll()
而不使用闭包参数,这将为您提供列表中的值的子集,这些值本身就是Groovy-true
def footerLabels = JcrUtils.getChildNodes("footer").collect{
it.hasProperty("footerLabel") ? it.getProperty("footerLabel").getString() : ""
}.findAll()