2012-01-06 101 views
1

在JSP和JSTL的名單我會normaly做這樣的事情:JSF複合組件迭代和顯示對象

<c:forEach items="${userList}" var = "user"> 
    <div id = "user-block"> 
     <h1>${user.name}</h1> 
     <div id = "user-description"> 
      <p>${user.description}</p> 
     </div> 
     <ul> 
      <li> Age: ${user.age} </li> 
      <li> City: ${user.city} </li> 
      <li> Country: ${user.country} </li> 
     </ul> 
    </div> 
</c:forEach> 

我試圖獲得使用的facelet複合組件相同的結果:

<cc:interface> 
    <cc:attribute name="value" type="java.util.List" required="true" shortDescription="The list of objects that should be displayed"/> 
</cc:interface> 

<cc:implementation> 
    <div class = "event-block"> 

    </div> 
</cc:implementation> 

問題是我不知道如何迭代#{cc.attrs.value}中的對象。

LE: 我想知道是否有解決這個不使用JSP或JSTL

+0

@informatik:當問題不涉及基本的Java代碼/語言問題(反過來與JSF基本上無關)時,請停止將JSF問題標記爲'[java]'。這可以防止那些對他們不理解和/或發佈不感興趣的評論/回答的問題進行壓縮的[[java]] nitwits(並且這也可以防止默認的XML/XHTML語法高亮由於[java]'標記的更高優先級而被搞亂)。 – BalusC 2013-09-09 02:28:53

+0

@BalusC哦,我明白了。將考慮到 – informatik01 2013-09-09 03:04:58

回答

0

您可以參考清單,#{cc.attrs.value}的方式。這將是這樣的:

<c:forEach items="${cc.attrs.value}" var = "user"> 
    // do your thing 
</c:forEach> 
+1

我知道,但我試圖完全避免JSP或JSTL。沒有其他辦法嗎? – Ionut 2012-01-06 12:50:24

+0

你有很強的理由嗎?就像你在你面前有一把槍,你選擇空手而入:P – 2012-01-06 12:57:06

+2

我並不是說我'反對它,但我認爲有一種方法可以使用Facelets組件來解決這個問題。 – Ionut 2012-01-06 14:25:50