how to use converter in pickList?

UI Components for JSF
Post Reply
User avatar
wikisky
Posts: 53
Joined: 16 Jul 2010, 17:30
Location: Oakville,ON
Contact:

07 Aug 2010, 21:02

I'm not sure why this code doesn't work:

Code: Select all

<p:pickList value="#{userBean.accessNumbers}" var="merno"
                 itemLabel="#{merno}" itemValue="#{merno}"
                 converter="#{javax.faces.convert.IntegerConverter}">
....
It throws an exception, similat to when there's no converter at all

Code: Select all

WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
        at org.primefaces.component.picklist.PickListRenderer.encodeOptions(PickListRenderer.java:173)
        at org.primefaces.component.picklist.PickListRenderer.encodeList(PickListRenderer.java:157)
        at org.primefaces.component.picklist.PickListRenderer.encodeMarkup(PickListRenderer.java:85)
        at org.primefaces.component.picklist.PickListRenderer.encodeEnd(PickListRenderer.java:51)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:295)
        at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:287)
        at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
        at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
        at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:74)
        at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:62)
        at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:203)
        at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:131)
        at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:69)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
        at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:78)
        at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:62)
        at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:44)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
        at org.primefaces.application.PrimeFacesPhaseListener$1.visit(PrimeFacesPhaseListener.java:246)
        at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:175)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1446)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIForm.visitTree(UIForm.java:333)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at javax.faces.component.UIComponent.visitTree(UIComponent.java:1457)
        at org.primefaces.application.PrimeFacesPhaseListener.writeComponents(PrimeFacesPhaseListener.java:188)
        at org.primefaces.application.PrimeFacesPhaseListener.handleAjaxRequest(PrimeFacesPhaseListener.java:107)
        at org.primefaces.application.PrimeFacesPhaseListener.beforePhase(PrimeFacesPhaseListener.java:73)
        at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
....

bluewing
Posts: 25
Joined: 14 Aug 2010, 19:02

18 Sep 2010, 15:05

Hi,

You need to specify a converter id. Try something like:

Code: Select all

@FacesConverter(value = "myConverter")
public class MyConverter implements Converter {
...
}

Code: Select all

<p:pickList value="#{userBean.accessNumbers}" var="merno"
                 itemLabel="#{merno}" itemValue="#{merno}"
                 converter="myConverter">
...
GlassFish 3.1, Mojarra 2.1.0-FCS, Facelets, PrimeFaces 2.2.1

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 49 guests