I coded my graph.jsp like this:
Code: Select all
<%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich" %>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="aj4" %>
<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>
<f:view>
<html>
<head>
<p:resources />
</head>
<body>
<p:pieChart value=" #{uivotacaocontrol.graphList}" var="opcao" categoryField=" #{opcao.nome}"
dataField=" #{opcao.valor}" styleClass="pie" style="chartStyle" />
</body>
</html>
</f:view>
Code: Select all
public class UIVotacaoControl {
private List<Opcao> graphList;
public UIVotacaoControl(){
}
public List<Opcao> getGraphList() {
graphList = new ArrayList<Opcao>();
graphList.add(new Opcao("Brand 1", 540));
graphList.add(new Opcao("Brand 2", 325));
graphList.add(new Opcao("Brand 3", 702));
graphList.add(new Opcao("Brand 4", 421));
return graphList;
}
}
Code: Select all
public class Opcao {
private String nome;
private Double valor;
public Opcao(){
}
public Opcao(String nome, double valor) {
// TODO Auto-generated constructor stub
this.nome=nome;
this.valor=valor;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Double getValor() {
return valor;
}
public void setValor(Double valor) {
this.valor = valor;
}
}
exception
javax.servlet.ServletException: java.lang.String cannot be cast to java.util.Collection
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
root cause
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Collection
org.primefaces.ui.component.chart.pie.PieChartRenderer.encodeLocalData(PieChartRenderer.java:94)
org.primefaces.ui.component.chart.pie.PieChartRenderer.encodeChartScript(PieChartRenderer.java:49)
org.primefaces.ui.component.chart.BaseChartRenderer.encodeEnd(BaseChartRenderer.java:53)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:847)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:893)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
Could someone help me?