2012-01-06 102 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