groovy只抓住循环的第一个元素

时间:2013-06-18 14:41:50

标签: groovy

我有一个非常简单的代码段。出于某种原因,这是 当我尝试输出它时,只抓取循环的第一个元素 我的jsp。 JcrUtils.getChildNodes返回一个我认为会遍历的NodeIterator 每个属性。这是代码:

def headerNode = JcrUtils.getChildNodes(LINKS).find{ 
    it.hasProperty("headerTitle")
    it.hasProperty("headerMeta")
}
selectHeaderTitle = headerNode.getProperty("headerTitle").getString()
selectHeaderMeta = headerNode.getProperty("headerMeta").getString()

JSP:

${header.selectHeaderTitle}
${header.selectHeaderMeta}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

您想要一个属性列表吗?您需要findAll,还需要&& hasProperty次来电:{/ p>

def headerNode = JcrUtils.getChildNodes(LINKS).findAll { 
    it.hasProperty("headerTitle") && it.hasProperty("headerMeta")
}

答案 1 :(得分:0)

Groovy find只返回第一个匹配。

请参阅http://groovy.codehaus.org/Iterator+Tricks