You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Marco Mistroni <mm...@gmail.com> on 2005/10/15 18:02:27 UTC

Error in using StringArrayConverter

Hello all,
 i am writing a JSF app using mYFaces..
In one of my pages, i have a h:selectManyCheckbox input field, which is
mapped to
a String[] property on my backed bean.
 after stumbling against the 'Invalid value' entered, i found out that there
is a converter
for a String[] array in myfaces, the StringArrayConverter.
 so i defined the converter in my faces-config.xml and declared it in the
h:selectManyCheckbox
input field.
At bean creation, i am even initializing the String array with values
{"foo", "bar"}
 However, when the page gets loaded , i am receiving the following exception
:
 2005-10-15 15:56:21,937 ERROR [
org.apache.myfaces.renderkit.html.HtmlGridRenderer] Exception while
rendering children of panel-grid.
java.lang.ClassCastException
at org.apache.myfaces.convert.StringArrayConverter.getAsString(
StringArrayConverter.java:56)
at org.apache.myfaces.renderkit.RendererUtils.getConvertedStringValue(
RendererUtils.java:677)
at
org.apache.myfaces.renderkit.RendererUtils.internalSubmittedOrSelectedValuesAsSet
(RendererUtils.java:712)
at org.apache.myfaces.renderkit.RendererUtils.getSelectedValuesAsSet(
RendererUtils.java:653)
at
org.apache.myfaces.renderkit.html.HtmlCheckboxRendererBase.renderCheckboxList
(HtmlCheckboxRendererBase.java:146)
at org.apache.myfaces.renderkit.html.HtmlCheckboxRendererBase.encodeEnd(
HtmlCheckboxRendererBase.java:99)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java
:494)
at org.apache.myfaces.renderkit.html.HtmlGridRenderer.renderChildren(
HtmlGridRenderer.java:253)
at org.apache.myfaces.renderkit.html.HtmlGridRenderer.encodeEnd(
HtmlGridRenderer.java:131)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:712)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:616)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:539)
at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(
UIComponentBodyTagBase.java:98)
at org.apache.jsp.modifyBody_jsp._jspx_meth_h_panelGrid_0
(modifyBody_jsp.java:316)
at org.apache.jsp.modifyBody_jsp._jspx_meth_h_form_0
(modifyBody_jsp.java:206)
at org.apache.jsp.modifyBody_jsp._jspx_meth_f_view_0
(modifyBody_jsp.java:176)
at org.apache.jsp.modifyBody_jsp._jspService(modifyBody_jsp.java:120)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:703)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:589)
at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(
JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java
:581)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:756)
at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(
InsertTag.java:888)
at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:458)
at org.apache.jsp.layout.classicLayout_002dsm_jsp._jspx_meth_tiles_insert_1
(classicLayout_002dsm_jsp.java:302)
at org.apache.jsp.layout.classicLayout_002dsm_jsp._jspService
(classicLayout_002dsm_jsp.java:120)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:703)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:589)
at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(
JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java
:581)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:756)
at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(
InsertTag.java:888)
at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:458)
at org.apache.jsp.modify_jsp._jspx_meth_tiles_insert_0(modify_jsp.java:102)
at org.apache.jsp.modify_jsp._jspService(modify_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:703)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:312)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(
ServletExternalContextImpl.java:405)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(
JspViewHandlerImpl.java:280)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
  here's what i am declaring in my jsp
  <h:selectManyCheckbox id="types"
value="#{entryListBean.types}" required="true"
converter="StringArrayConverter">
<f:selectItem itemValue="Date" itemLabel="#{msgs.queryByDate}"/>
<f:selectItem itemValue="Type" itemLabel="#{msgs.queryByType}"/>
</h:selectManyCheckbox>
 and here's how my backed bean is initialized
 private String[] types = {"foo","bar"};
 i have included in my webapp myfaces-1.1.jar
 anyone could help me out?
 thanks in advance and regards
 Marco