Gol*_*ict 3 datatable foreach jsf jstl primefaces
我正在使用jsf Mojarra 2.2.7,Java 8,Primefaces 5.1和netbeans 8.0.2
我有Event一个属性的班级List<GameRecord> gameRecordList.GameRecord包括List<Boolean> gamesEntered和其他属性.我的想法是,我有一个活动中的人员列表,如果他们进入投注或比赛,我正在配置.
在我的.xhtml文件中
<p:dataTable value="#{events.gameRecordList}" var="item" rowIndexVar="rowIndex">
<p:column>#{item.field1}</p:column>
<p:column>#{item.field2}</p:column>
<c:forEach items="#{events.gameRecordList.get(rowIndex).gamesEntered}" var="game">
<p:column>
<p:selectBooleanCheckbox value="#{game}"/>
</p:column>
</c:forEach>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
本<c:forEach>应一起工作value="#{item.gamesEntered}",而不是整个字符串,但事实并非如此.我试过<ui:repeat>但无论哪种方式,页面都会出现空白,此数据应该出现.
这是否有意义或是否有理由需要完全寻址才能使其正常工作?
本
<c:forEach>应一起工作value="#{item.gamesEntered}",而不是整个字符串,但事实并非如此.
JSTL标记在视图构建期间运行,构建JSF组件树.JSF组件在视图渲染时运行,生成HTML输出.因此,目前<c:forEach>运行,<p:dataTable>没有运行,它var无处可用,将评估为null.请注意,这同样适用于rowIndexVar,将评估为0(an的默认值int).
我试过
<ui:repeat>但无论哪种方式,页面都会出现空白,此数据应该出现.
UIData组件只能接受UIColumn儿童.在<ui:repeat>不是这样的.这<c:forEach>是因为它基本上为数据表生成了一堆物理<p:column>组件.你很幸运,每个项目的数量显然与gamesEntered第一个项目相同,否则这也会很难.
顺便说一下,你需要<p:columns>哪个基本上是<ui:repeat>从UIColumn类扩展而来的.但是在这里,它value不能按行设置,只能在每个表的基础上设置.该rowIndexVar不在可用的<p:columns value>和将评估0反正.
<p:dataTable value="#{events.gameRecordList}" var="item" rowIndexVar="rowIndex">
<p:column>#{item.field1}</p:column>
<p:column>#{item.field2}</p:column>
<p:columns value="#{events.gameRecordList[0].gamesEntered}" columnIndexVar="columnIndex">
<p:selectBooleanCheckbox value="#{events.gameRecordList[rowIndex].gamesEntered[columnIndex]}"/>
</p:columns>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5964 次 |
| 最近记录: |