我正在开发一个小的单页网络应用程序。在其中,我有一个数据表,其中包含一个布尔值列。我想尝试将其显示为复选框。但是,它在渲染时失败。我猜这是需要渲染对象并且复选框是布尔值并因此失败的事实。虽然这看起来像一个错误,除非我在某处遗漏了标记。Primefaces 3.2.1、GF 3.1.1、JDK 7。
<p:column>
<f:facet name="header">With Login
</f:facet>
<p:selectBooleanCheckbox value="#{server.withLogin}" onLabel="Login" offLabel="Without Login"/>
</p:column>
错误堆栈是这个
java.lang.NoSuchMethodError: org.primefaces.util.ComponentUtils.getValueToRender(Ljavax/faces/context/FacesContext;Ljavax/faces/component/UIComponent;)Ljava/lang/String;
at org.primefaces.component.selectbooleancheckbox.SelectBooleanCheckboxRenderer.encodeMarkup(SelectBooleanCheckboxRenderer.java:60)
at org.primefaces.component.selectbooleancheckbox.SelectBooleanCheckboxRenderer.encodeEnd(SelectBooleanCheckboxRenderer.java:53)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:571)
at org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:531)