Olá gente, é o seguinte:
Peguei o código do PickList na página do Primefaces http://www.primefaces.org/showcase/ui/picklist.jsf e tentei adaptar à minha necessidade.
Só que ainda sou muito crú em java e primefaces.
Tenho o arquivo pickList.xhtml alterado:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:form id="form">
<h3>Basic PickList</h3>
<p:pickList id="pickList" value="#{pickListBean.cities}"
var="city"
itemLabel="#{city}"
itemValue="#{city}" />
<p:commandButton id="citySubmit" value="Submit" update="displayCities" oncomplete="cityDialog.show()"/>
<p:dialog modal="true" showEffect="fade" hideEffect="fade" widgetVar="cityDialog">
<h:panelGrid id="displayCities" columns="2">
<h:outputText value="Source: " style="font-weight:bold"/>
<ui:repeat value="#{pickListBean.cities.source}" var="item">
<h:outputText value="#{item}" style="margin-right:5px" />
</ui:repeat>
<h:outputText value="Target: " style="font-weight:bold"/>
<ui:repeat value="#{pickListBean.cities.target}" var="item">
<h:outputText value="#{item}" style="margin-right:5px" />
</ui:repeat>
</h:panelGrid>
</p:dialog>
</h:form>
</html>
Tenho também o PickListBean alterado conforme o código:
[code]
package org.primefaces.examples.view;
import java.util.ArrayList;
import java.util.List;
import org.primefaces.model.DualListModel;
public class PickListBean {
private DualListModel<String> cities;
public PickListBean() {
//Cities
List<String> citiesSource = new ArrayList<String>();
List<String> citiesTarget = new ArrayList<String>();
citiesSource.add("Istanbul");
citiesSource.add("Ankara");
citiesSource.add("Izmir");
citiesSource.add("Antalya");
citiesSource.add("Bursa");
cities = new DualListModel<String>(citiesSource, citiesTarget);
}
public DualListModel<String> getCities() {
return cities;
}
public void setCities(DualListModel<String> cities) {
this.cities = cities;
}
}[/code]
Só que está dando a seguinte mensagem de erro:
GRAVE: Error Rendering View[/pickList.xhtml]
java.lang.NullPointerException
at org.primefaces.component.picklist.PickListRenderer.encodeMarkup(PickListRenderer.java:90)
at org.primefaces.component.picklist.PickListRenderer.encodeEnd(PickListRenderer.java:51)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source).
O que eu faço?