dataTable中的JSF / Primefaces selectBooleanCheckbox组件始终未选中

walias 发布于 2019-03-09 checkbox 最后更新 2019-03-09 14:34 0 浏览

在我的项目中,我使用JSF 2.0和Primefaces 3.5。 在一页中,我有一个p:dataTable,表中的一列有selectBooleanCheckbox。我尝试了p:selectBooleanCheckboxh:selectBooleanCheckbox。我的代码如下所示:

<h:panelGrid columns="3">
            <p:selectBooleanCheckbox id="id" value="false" />
            <p:selectBooleanCheckbox id="id" value="true" />
            <p:dataTable id="tbl" value="#{bean.items}" var="item" paginator="false">
                <p:column>
                    <h:outputText value="#{item.value}" />
                </p:column>
                <p:column>
                    <h:outputText value="#{item.value}" />
                </p:column>
                <p:column style="white-space:normal; text-align: center;">
                    <p:selectBooleanCheckbox id="id" value="#{item.checked}" />
                    <p:selectBooleanCheckbox id="id" value="true" />
                    <p:selectBooleanCheckbox id="id" value="false" />
                    <h:selectBooleanCheckbox id="id" value="true" />
                    <h:selectBooleanCheckbox id="id" value="false" />
                </p:column>
            </p:dataTable>
        </h:panelGrid>
结果是: primefaces jsf selectBooleanCheckbox 我想显示selectBooleanCheckbox的正确大小写。有什么建议么?
已邀请:

umodi

赞同来自:

您应该使用#{true}#{false}而不是truefalse
喜欢这个:

<p:selectBooleanCheckbox id="id" value="#{true}" />

wet

赞同来自:

您似乎没有将复选框链接到辅助bean中的任何值。尝试将值存储在您的支持bean中,并将其反映在您的复选框中。例如, 支持豆:

private Boolean value1 = true;
private Boolean value2 = false;
//appropriate getters and setters for the above values
JSF页面片段:
<p:selectBooleanCheckbox value="#{backingbean.value1}" itemLabel="Value 1"/>
<p:selectBooleanCheckbox value="#{backingbean.value2}" itemLabel="Value 2"/>
这应该导致第一个复选框被选中(因为value1 = true)而第二个复选框不应该是value2 = false。通过这种方式,每当您单击一个复选框时,它的值也将分别反映在value1和value2中。 希望有帮助...... 另外,如果要手动设置要检查的复选框,@ navand说使用#{true}和#{false}是正确的。