如何解决JSF 2 ui:repeat:将div中的每n个项目分组
您可以根据varStatus
属性检查当前循环,并</div><div style="float: left;">
在必要时打印中介。
例如,每3个项目:
<div style="float: left;">
<ui:repeat value="#{bean.list}" var="item" varStatus="loop">
<h:outputText value="</div><div style='float: left;'>" escape="false" rendered="#{not loop.first and loop.index % 3 == 0}" />
<div>#{item}</div>
</ui:repeat>
</div>
请注意,不可能将其包装为纯HTML到中<h:panelGroup>
,因为它会导致格式不正确的XML,因此将<h:outputText
escape="false">
其作为XML实体。
,<div>
这是仅定义一次的另一种方法,可能不太混乱:
<ui:repeat value="#{bean.list}" var="item" varStatus="loop">
<h:outputText value="<div style='float: left;'>" escape="false" rendered="#{loop.index % 3 == 0}" />
<div>#{item}</div>
<h:outputText value="</div>" escape="false" rendered="#{loop.last or (loop.index + 1) % 3 == 0}" />
</ui:repeat>
解决方法
给定一个我想安排在这样的页面上的集合:
<!-- Group 0 -->
<div style="float:left;">
<div><!-- Item 0 --></div>
<div><!-- Item 1 --></div>
<!-- ... -->
<div><! -- Item n - 1 --></div>
</div>
<!-- Group 1 -->
<div style="float:left;">
<div><!-- Item n --></div>
<div><!-- Item n + 1 --></div>
<!-- ... -->
<div><! -- Item 2n - 1 --></div>
</div>
<!-- ... -->
<!-- Group g -->
<div><!-- Item gn --></div>
<div><!-- Item gn + 1 --></div>
<!-- ... -->
<div><! -- Item (g + 1)n - 1 --></div>
</div>
我可以使用某种技巧在ui:repeat或其他技术( 最好 是创建自定义组件之外)中进行此操作吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。