Como implementar um picklist utilizando richfaces

4 respostas
C

Como implementar um picklist utilizando richfaces. Não consigo carregar os objetos no list de forma dinâmica. Alguém poderia me ajudar?

O seguinte código funciona, ou seja, estático. Como carrego uma lista de componentes que possuem dois parâmetros (id e nome)? Não sei o que cocar no ManagedBean.

[color=red]rich:pickList
<f:selectItem itemLabel=“Option 1” itemValue=“1”/>
<f:selectItem itemLabel=“Option 2” itemValue=“2”/>
<f:selectItem itemLabel=“Option 3” itemValue=“3”/>
<f:selectItem itemLabel=“Option 4” itemValue=“4”/>
<f:selectItem itemLabel=“Option 5” itemValue=“5”/>
</rich:pickList>[/color]

4 Respostas

T

eh so voce preencher uma lista de SelectItem

para ser mais especifico:

http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf?tab=usage&cid=33720

<rich:pickList value="#{SeuManagedBean.ListaQueArmazenaOResultado}"> 
            <f:selectItems value="#{SeuManagedBean.ListaQueVemDoBanco}"/>
</rich:pickList>
C

Eu já tentei, porém acontece o seguinte erro (o erro acontece no selectItens):

exception

javax.servlet.ServletException: Value [Ljava.lang.String; of tag  attribute is incorrect.

javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

root cause

java.lang.IllegalArgumentException: Value [Ljava.lang.String; of tag  attribute is incorrect.

org.ajax4jsf.util.SelectUtils.getSelectItems(SelectUtils.java:101)

org.richfaces.renderkit.PickListRenderer.getConvertedItems(PickListRenderer.java:511)

org.richfaces.renderkit.html.PickListRendererGen.doEncodeChildren(PickListRendererGen.java:283)

org.richfaces.renderkit.html.PickListRendererGen.doEncodeChildren(PickListRendererGen.java:264)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)

javax.faces.render.Renderer.encodeChildren(Renderer.java:148)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)

com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
T

vc percebeu que a declaração da tag esta errada ?

C

Obrigado pelas dicas. Solucionei o problema utilizando o richfaces + tomawark.

[color=red]<rich:pickList id=“teste” value="#{testeMB.listaNatureza}">

<t:selectItems var=“obj” value="#{testeMB.natureza}" itemLabel="#{obj.descricao}" itemValue="#{obj.id}"/>

</rich:pickList>[/color]

Obrigado!

Criado 3 de dezembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 4
Participantes 2