简体   繁体   中英

Primefaces selectbooleancheckbox not working in a column

I am developing a small one page web app. In it, I have a datatable which contains a column that's a boolean. I wanted to try to display it as checkbox. However it's failing when rendered. I am guessing it is the fact that the object needs to be rendered and checkbox is a boolean and hence failing. Though this looks like a bug unless I am missing a mark up somewhere. 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>

Error stack is this

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)

This indicates that you've mixed multiple PrimeFaces versions in a single webapp of which the older one which doesn't have the mentioned method at all got precedence in classloading.

Cleanup your webapp's runtime classpath. You should have only one version of PrimeFaces.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM