Problem with PieChart

UI Components for JSF
Post Reply
torugo
Posts: 2
Joined: 26 Aug 2009, 18:16

26 Aug 2009, 18:22

I am trying to test a piechart on my jsf.

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>
My bean is:

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;
	}
}
the Opcao bean:

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;
	}
	
}
And I am receiving the following error when i open the page:
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?

torugo
Posts: 2
Joined: 26 Aug 2009, 18:16

26 Aug 2009, 19:43

I somehow solved the first issue. But now I have a new one...
How do i configure the piechart width and height?

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

26 Aug 2009, 19:53

Hi,

Regarding your first question, avoid having whitespaces in EL expressions. You had;

Code: Select all

<p:pieChart value=" #{uivotacaocontrol.graphList}" var="opcao" categoryField=" #{opcao.nome}" 
         dataField=" #{opcao.valor}" styleClass="pie" style="chartStyle" /> 
Instead it should be;

Code: Select all

<p:pieChart value="#{uivotacaocontrol.graphList}" var="opcao" categoryField="#{opcao.nome}" 
         dataField="#{opcao.valor}" styleClass="pie" style="chartStyle" /> 
About chart width and height, please see Chart Skinning section in PrimeFaces reference documentation.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 53 guests