Olá,
estou apenas começando no desenvolvimento de componentes customizados para o JavaServer Faces e estou com o seguinte problema: uma das minhas tags recebe como atributo um valor que não seja do tipo String. No caso, trata-se de uma tabela.
Defini no arquivo TLD a tag da seguinte forma:
<tag>
<name>elementosTabela</name>
<tag-class>ecm.cmc.faces.ui.ElementosTabelaTag</tag-class>
<attribute>
<name>largura</name>
<description>A largura da tabela</description>
</attribute>
<attribute>
<name>tabela</name>
<rtexprvalue>true</rtexprvalue>
<type>algo.entidades.tabela.Tabela</type>
<description>A tabela que será exposta</description>
</attribute>
</tag>
Como podem observar, defini o tipo corretamente, trata-se de uma das classes da minha aplicação. No entanto, toda vez que vou executar a página que contém a tag relacionada, e passo como parametro tabela um valor do tipo ealgo.entidades.tabela.Tabela, obtenho a seguinte saida:
org.apache.jasper.JasperException: jsp.error.beans.property.conversion
org.apache.jasper.runtime.JspRuntimeLibrary.getValueFromPropertyEditorManager(JspRuntimeLibrary.java:885)
org.apache.jsp.cmc.tabelaModelo_jsp._jspx_meth_cmc_jsf_elementosTabela_0(org.apache.jsp.cmc.tabelaModelo_jsp:822)
org.apache.jsp.cmc.tabelaModelo_jsp._jspx_meth_f_view_0(org.apache.jsp.cmc.tabelaModelo_jsp:172)
org.apache.jsp.cmc.tabelaModelo_jsp._jspService(org.apache.jsp.cmc.tabelaModelo_jsp:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
Sendo assim, pergunto: como configurar um componente JSF para aceitar valores que NÃO sejam do tipo String, mas sim classes customizadas? Aonde mais eu poderia estar errando (com certeza trata-se de um erro óbvio).