我有一段时间试图解决p:selectBooleanButton doesn't render preselected value,很多时间只是为了解决它改变ui:重复到h:datatable。
这是两段代码。
<ui:repeat value="#{presupuestoBean.getItemsPresupuestBySeccion('Parte Delantera')}" var="itemPresupuesto">
<tr>
<td><h:outputText value="#{itemPresupuesto.descripcion}"/></td>
<td>
<p:selectBooleanButton value="#{presupuestoBean.itemsPresupuestoAsignadoCambiar[itemPresupuesto.id]}" onLabel="Yes" offLabel="No" onIcon="ui-icon-check" offIcon="ui-icon-close"/>
<h:outputText value="#{presupuestoBean.itemsPresupuestoAsignadoCambiar[itemPresupuesto.id]}" />
</td>
</tr>
</ui:repeat>
(注意,该按钮显示'FALSE(或NO)'值,尽管outputText显示属性值为'TRUE')
另一方面,与h:datatable完全相同的代码。
<h:dataTable value="#{presupuestoBean.getItemsPresupuestBySeccion('Parte Delantera')}" var="itemPresupuesto2">
<h:column>
<h:outputText value="#{itemPresupuesto2.descripcion}"/>
</h:column>
<h:column>
<p:selectBooleanButton value="#{presupuestoBean.itemsPresupuestoAsignadoCambiar[itemPresupuesto2.id]}" onLabel="Si" offLabel="No" onIcon="ui-icon-check" offIcon="ui-icon-close"/>
<h:outputText value="#{presupuestoBean.itemsPresupuestoAsignadoCambiar[itemPresupuesto2.id]}" />
</h:column>
</h:dataTable>
任何人都知道为什么会发生这种情况?据我所知,这两个标签可以互换。 (至少根据我看到的例子JSF 2 Repeat Tag Example)
我正在使用com.sun.faces jsf-api和jsf-impl 2.2.4 还有Primefaces 4.0
答案 0 :(得分:1)
我有相同的行为,并且无法使用ui工作:使用地图和默认值正确重复。 当您使用primefaces时,您可能还会发现 p:dataGrid 作为h:dataTable的替代方法。
答案 1 :(得分:1)
您将查看构建时间与查看渲染时间混淆了! BalusC在这里发布了一个解释: