JSF Funcionando com JFreeChart - utilizando um codigo para isso

2 respostas
Y

Oi Pessoal tudo bem?

Seguinte, acho que essa duvida pode ser de um monte de gente.

De acordo com um topico analisado aqui mesmo no GUJ Forum, vimos que é possivel gerar grafico com JSF e isso da seguinte maneira.

é só acrencentar em seu codigo isso:

"sujestão é que vc faça um metodo para gerar o array de bytes,"a imagem do grafico", e seu servlet retorne para a aplicação este array"...

public class ServletGrafico extends HttpServlet {   
  
    /**  
     *  
     */   
    private static final long serialVersionUID = 7525881554438222L;   
       
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
        try {   
            String attribute = request.getParameter("attribute");   
  
            byte[] image = null;   
               
            image = (byte[]) request.getSession().getAttribute(attribute);   
  
            response.getOutputStream().write(image);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
  
}

E depois la seu MB
vc cria o grafico normalmente so que vc tem que setar a imagem na sessao ai vc faz assim:

byte[] imagem = ChartUtilities.encodeAsPNG(chart.createBufferedImage(1000, 500)); setSessionValue("nomeDoMeuGrafico", imagem);

AGORA pergunto como ficaria na veiw? seria como esse codigo ???:

<?xml version="1.0" encoding="UTF-8"?>   
<!--   
    Document   : Page1   
    Created on : 02/10/2008, 21:16:45   
    Author     : Vitor   
-->   
  
<jsp:root version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:webuijsf="http://www.sun.com/webui/webuijsf" xmlns:cewolf="/WEB-INF/cewolf.tld">   
    <jsp:directive.page  contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>   
    <f:view>   
        <webuijsf:page binding="#{Page1.page1}" id="page1">           
            <webuijsf:html binding="#{Page1.html1}" id="html1">   
                <webuijsf:head binding="#{Page1.head1}" id="head1">   
                    <webuijsf:link binding="#{Page1.link1}" id="link1" url="/resources/stylesheet.css"/>   
                </webuijsf:head>   
                <webuijsf:body binding="#{Page1.body1}" id="body1" style="-rave-layout: grid">   
                    <webuijsf:form binding="#{Page1.form1}" id="form1">     
                        <jsp:useBean id="pageViews" class="sagw.PageViewCountData"/>   
                        
                          
                           <cewolf:chart   
                            id="line"   
                            title="Page View Statistics"   
                            type="line"   
                            xaxislabel="Page"   
                            yaxislabel="Views">   
                            <cewolf:data>   
                                <cewolf:producer id="pageViews"/>   
                            </cewolf:data>   
                        </cewolf:chart>                               
                        <cewolf:img chartid="line" renderer="cewolf" width="400" height="300"/>   


                    </webuijsf:form>                       
                </webuijsf:body>   
            </webuijsf:html>   
        </webuijsf:page>   
    </f:view>   
    </jsp:root>

ALGUEM podeia me dar uma sujestão ?

Aguardamos reposta então de alguma sujestão ....

2 Respostas

furutani

Entendi mais ou menos seu problema.
Mas você pode mostrar o gráfico chamando o ServletGrafico de uma tag img.

<img src="/ServletGrafico" alt="" width="" />
Y

… pois é cara … e eu ainda nem implementei esse código em minhas aplicações nem sei se vai dar certo, mas esse codigo eu retirei de topico do forum do GUJ …
vou precisar de saber se é funcional esse codigo…
voi implementar e vamos ver o que vai dar …
mesmo assim agradeço pela atenção.
qualquer coisa post de novo.
Falow

Criado 20 de fevereiro de 2010
Ultima resposta 21 de fev. de 2010
Respostas 2
Participantes 2