2012-07-23 62 views
2

我有一個grails對象,我想提取其中的第一個值。我是Grails新手,尚未完全瞭解該語言。 我用循環來提取它們,但這次我只需要第一個值,沒有別的。 我嘗試了用如何提取grails對象中的第一個值

<div id="blaa">${items}[0].value"</div> 

拋出一個錯誤。

下面通常是我如何循環通過對象。

   <g:each in="${items}" var="item" status="i"> 
        <li><a href="#">${item.value}</a></li> 
       </g:each> 

回答

1

這裏使一些假設,因爲你沒有表現出大量的代碼,你也沒有告訴我們錯誤:

通過Grails的默認集合是一組。要在一組,你可以做這樣的事情得到的第一個值:

${item.toArray()[0]} 
2

雖然@格雷格的答案是正確的,將讓你得到的第一個元素,還有一個更簡單的方法,這是非常接近你嘗試過什麼:

<div id="blaa">${items[0].value}"</div> 

的問題是,你需要有所有你的「代碼」件${...}結構內。除此之外的所有內容都被視爲字符串。

只要items是一個有序Collection(所以,一個List,一個MapRange,但不是一個Set),您可以訪問它像在Groovy(語言Grails是內置)的陣列。 @ Gregg的回答明確地將items轉換爲數組,然後像數組一樣訪問它。

+0

關於你提到的最後一點:儘管大多數集合可以被索引數組類似,這不是真正的集合。 – ataylor 2012-07-23 18:49:34

+0

@ataylor - 啊,非常真實。我忘記了Sets沒有任何內置命令的概念,這是基於索引的訪問所必需的。我已經更新了我的答案以反映這一點。謝謝你糾正我。 – cdeszaq 2012-07-24 12:48:45

0

您可以使用${items.head().value}獲得的第一個值

相關問題