Java <;c:forEach>;或<;用户界面:重复>;不访问<;p:dataTable var>;,还有其他解决办法吗?
我正在使用jsf Mojarra 2.2.7、Java 8和Primefaces 6.0 我有一个班级测量记录。类MeasurementRecording有一个包含双重记录的列表。我无法访问c:foreach部分中的p:datatable变量“tempMeasurementRecording”来显示双重录制。对于ui:重复同样的问题。我知道由于JSF的视图和构建时间,我无法访问p datatable变量 但要解决这个问题,我需要什么解决方案呢?(后端或前端)Java <;c:forEach>;或<;用户界面:重复>;不访问<;p:dataTable var>;,还有其他解决办法吗?,java,jsf,primefaces,datatable,Java,Jsf,Primefaces,Datatable,我正在使用jsf Mojarra 2.2.7、Java 8和Primefaces 6.0 我有一个班级测量记录。类MeasurementRecording有一个包含双重记录的列表。我无法访问c:foreach部分中的p:datatable变量“tempMeasurementRecording”来显示双重录制。对于ui:重复同样的问题。我知道由于JSF的视图和构建时间,我无法访问p datatable变量 但要解决这个问题,我需要什么解决方案呢?(后端或前端) 如果你知道为什么c:foreach
如果你知道为什么c:foreach
不起作用,你为什么要问?顺便说一句,在前面的问题中,我已经创建了一条注释,指向jstl im jsf答案,我询问是否有其他解决方案来显示datatable。因为访问datatable的var不起作用。你对此有何评论?你能链接它吗?访问datatable的变量确实有效。。。只是不是按照你想要的方式(找不到你的Q的副本,但有)。想想看,每行要显示的列数取决于当前行。这根本不可能,无论如何也不可能。那会是什么样子?只需在后端创建一个不同的模型并使用p:colums
<p:dataTable id="tbl"
value="#{measurementRecordingLazyDataActions.measurementRecordings}"
var="tempMeasurementRecording"
rowKey="#{tempMeasurementRecording.measurementRecordingID}"
widgetVar="#{tableConsts.widgetVar}"
tableStyleClass="#{tableConsts.tableStyleClass}"
rows="#{tableConsts.rows}"
rowsPerPageTemplate="#{tableConsts.rowsPerPageTemplate}"
resizableColumns="#{tableConsts.resizableColumns}"
scrollable="true" scrollHeight="470" lazy="true">
<f:facet name="{Exporters}">
<h:commandLink>
<i class="fa fa-file-excel-o" />
<p:dataExporter type="xls" target="tbl"
fileName="measurementrecording" />
</h:commandLink>
</f:facet>
<c:forEach
items="#{tempMeasurementRecording.doubleRecordingComponents}"
var="doubleRecordingComponent">
<p:column
headerText="#{doubleRecordingComponent.minMaxComponent.name}"
filterBy="#{doubleRecordingComponent.value}">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{doubleRecordingComponent.value}"
title="#{doubleRecordingComponent.value}">
<f:converter converterId="decimalNumberConverter" />
</h:outputText>
</f:facet>
<f:facet name="input">
<h:inputText styleClass="#{tableConsts.errorClass}"
value="#{doubleRecordingComponent.value}"
style="width:100%"
label="#{doubleRecordingComponent.value}">
<f:converter converterId="decimalNumberConverter" />
</h:inputText>
</f:facet>
</p:cellEditor>
</p:column>
<p:column
headerText="#{doubleRecordingComponent.minMaxComponent.name}"
filterBy="#{doubleRecordingComponent.minMaxComponent.min}">
<p:cellEditor>
<f:facet name="output">
<h:outputText
value="#{doubleRecordingComponent.minMaxComponent.min}"
title="#{doubleRecordingComponent.minMaxComponent.min}">
<f:converter converterId="decimalNumberConverter" />
</h:outputText>
</f:facet>
<f:facet name="input">
<h:inputText styleClass="#{tableConsts.errorClass}"
value="#{doubleRecordingComponent.minMaxComponent.min}"
style="width:100%"
label="#{doubleRecordingComponent.minMaxComponent.min}">
<f:converter converterId="decimalNumberConverter" />
</h:inputText>
</f:facet>
</p:cellEditor>
</p:column>
</c:forEach>
</p:dataTable>