Foros del Web » Programación para mayores de 30 ;) » Java »

Gráfica en jsp

Estas en el tema de Gráfica en jsp en el foro de Java en Foros del Web. Hola, mi problema es el siguiente, en un servlet creo una gráfica JFreeChart con el siguiente método "ChartFactory.createBarChart" y la meto en una sesión, direcciono ...
  #1 (permalink)  
Antiguo 26/10/2007, 14:03
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Pregunta Gráfica en jsp

Hola, mi problema es el siguiente, en un servlet creo una gráfica JFreeChart con el siguiente método "ChartFactory.createBarChart" y la meto en una sesión, direcciono a una página JSP donde quiero mostrar la gráfica, para ello la sao de la sesión como JFreeChart y la pretendo mostrar de este modo, dentro de la jsp;

Código:
 <% ChartUtilities.writeChartAsJPEG(out,grafica,500,300); %>
Pero me da el siguiente fallo:

Código:
Generated servlet error:
    [javac] Since fork is true, ignoring compiler setting.
    [javac] Compiling 1 source file
    [javac] Since fork is true, ignoring compiler setting.
    [javac] C:\Archivos de programa\Apache Group\Tomcat 4.1\work\Standalone\localhost\encuesta\paginas\GraficaItem_jsp.java:88: cannot resolve symbol
    [javac] symbol  : method writeChartAsJPEG (javax.servlet.jsp.JspWriter,org.jfree.chart.JFreeChart,int,int)
    [javac] location: class org.jfree.chart.ChartUtilities
    [javac]  ChartUtilities.writeChartAsJPEG(out,grafica,500,300); 
    [javac]                ^
    [javac] 1 error
¿Alguien sabe cómo puedo hacerlo?
Muchas gracias, un saludo.
  #2 (permalink)  
Antiguo 02/11/2007, 07:22
 
Fecha de Ingreso: octubre-2007
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Gráfica en jsp

Hola no puedes hacerlo asi, supongo que lo que estas haciendo es dentro de la jsp
Código:
<%= ChartUtilities.writeChartAsJPEG(out,grafico,ancho,alto)%>
debes hacer lo siguiente:

1.- En tu JSP crearte una etiqueta <img> de esta manera
Código HTML:
<img src="ServletGrafico"> 
donde ServletGrafico sera el servlet que te redirija a la clase que te lo trate, p.e. llamemos a la clase servletGrafico, quedando en el web.xml
Código:
<servlet>
      <servlet-name>ServletGrafico</servlet-name>
      <servlet-class>servletGrafico</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>ServletGrafico</servlet-name>
      <url-pattern>/ServletGrafico</url-pattern>
</servlet-mapping>
en servlet-class debe ir el nombre totalmente cualificado de la clase, es decir, si el servlet lo tienes metido en el paquete llamado src.servlets, pues el servlet-class debe ser <servlet-class>src.servlets.servletGrafico</servlet-class>

2.- en el servlet que lo trata debe poner el siguiente codigo, al tratarse de un servlet doy por supuesto que debes tratarlo dentro del metodo doGet(HttpServletRequest, HttpServletResponse).

Código:
                res.setContentType("image/jpeg");
		try
		{
			OutputStream out = res.getOutputStream();
			ChartUtilities.writeChartAsJPEG(out, graficoBarras, Integer.parseInt(sAncho.trim()), Integer.parseInt(sAlto.trim()));
			out.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
ya con esto debe funcionarte, debe saber que el método writeChartAsPNG o writeChartAsJPEG se comunica con la JSP mediante Stream, entonces la unica manera de pintar la grafica es asi.

Espero haberte ayudado. Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:00.