IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

graphique avec JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut graphique avec JSP
    Bonjour,
    Je voudrais intégrer un graphique générer à l'aide de la laibrairie JFreeChart à une page acceuil.jsp.
    Je crée une classe ThreeBarsPanel.java qui représente mon graphique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.CategoryItemRenderer;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.general.DatasetUtilities;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.geom.Ellipse2D;
    import java.awt.Color;
     
    public class ThreeBarsPanel extends JPanel {
    	private int _ltsV;
    	private int _htsV;
    	private int _ltsNV;
    	private int _htsNV;
    	private String title;
     
    	public ThreeBarsPanel(){
    		super();
    		final double[][] data = new double[3][3];
    		data[0][0] = 25;
    		data[0][1] = 12;
    		data[0][2] = 7;
    		data[1][0] = 15;
    		data[1][1] = 8;
    		data[1][2] = 9;
    		data[2][0] = 10;
    		data[2][1] = 6;
    		data[2][2] = 18;
    		Comparable[] number = new Comparable[3];
    		number[0] = 0;
    		number[1] = 10;
    		number[2] = 20;
    		Comparable[] bases = new Comparable[3];
    		bases[0] = "HTS";
    		bases[1] = "LTS";
    		bases[2] = "DMPK";
    		final CategoryDataset dataset = DatasetUtilities.createCategoryDataset(number,bases,data);
    		JFreeChart chart = createCombinedChart(dataset);
    		final ChartPanel panel = new ChartPanel(chart);
    		panel.setPreferredSize(new java.awt.Dimension(100, 270));
    		//setContentPane(panel);
    		add(panel);
    	}
     
    	 public JFreeChart createCombinedChart(CategoryDataset dataset) {
    		 JFreeChart chart = ChartFactory.createBarChart(title,
                     "Number",
                     null,
                     dataset,
                     PlotOrientation.HORIZONTAL,
                     true,
                     true,
                     false);
     
    	        chart.setBackgroundPaint(Color.white);
     
    	        final CategoryPlot plot = (CategoryPlot) chart.getPlot();
    	        plot.setForegroundAlpha(0.5f);
    	        plot.setBackgroundPaint(Color.lightGray);
    	        plot.setDomainGridlinePaint(Color.white);
    	        plot.setRangeGridlinePaint(Color.white);
     
    	        final CategoryAxis domainAxis = plot.getDomainAxis();
    	        domainAxis.setLowerMargin(0.0);
    	        domainAxis.setUpperMargin(0.0);
     
    	        // change the auto tick unit selection to integer units only...
    	        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    	        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
     
    	        final CategoryItemRenderer renderer = plot.getRenderer();
    	        renderer.setItemLabelsVisible(true);
    	        renderer.setSeriesPaint(0,Color.GREEN);
     
    	        renderer.setSeriesPaint(2,Color.GREEN);
    	        renderer.setSeriesPaint(1,Color.BLUE);
    	        renderer.setShape(new Ellipse2D.Double(-3, -3, 6, 6));
    	        return chart;
     
    	    }
    Puis pour appeler cette classe, j'avais le choix soit je l'instancie dans une nouvelle page graphic.jsp puis je l'intégre dans ma page acceuil.jsp avec une balise image
    Code :

    <img src="graphics.jsp">

    soit je l'instancie directement dans ma page acceuil.jsp
    Code :

    <%ThreeBarsPanel demo = new ThreeBarsPanel();%>

    mais dans les deux cas ça ne marche pas, ai-je oublié quelque chose?!!

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben tu as oublié que tu faisais du Web ...

    Merci de lire au moins un tuto sur servlets/jsp pour comprendre ce qu'est une appli web avant de se lancer ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    ouiiii, je m'en sors pas mal en java, mais je suis tout à fait nivice en java web.
    D'après ce que j'ai lu, on ne pas avoir deux reponses à la fois! mais pas je n'en sais pas plus

    Cependant, un petit coup de pouce serait le bienvenu,
    avec un grand merci d'avance!

  4. #4
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par chtig
    Ben tu as oublié que tu faisais du Web ...

    Merci de lire au moins un tuto sur servlets/jsp pour comprendre ce qu'est une appli web avant de se lancer ...
    @chtig
    JFreeChart peut être utilisé au sein d'une servlet/JSP (voir l'onglet 'Home' sur le site http://www.jfree.org/jfreechart/).
    Par conséquent, JFreeChart peut tout à fait être intégré dans une application JEE.
    GlamIs n'a donc pas tort de parler de JFreeChart...

    @GlamIs
    Je n'ai jamais utilisé JFreeChart mais il doit sûrement y avoir des choses qui changent lorsque tu utilises JFreeChart dans une application JSE (Java standard) et dans une application JEE (Java entreprise --> servlets/JSP).
    Es-tu certain de n'utiliser que des éléments de JFreeChart destinés à la conception d'applications JEE?
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    merci aJavaDevelopper, je commençais a désesperer!!

    J'ai trouvé ça sur le site
    "JFreeChart
    A free Java chart library. JFreeChart supports pie charts (2D and 3D), bar charts (horizontal and vertical, regular and stacked), line charts, scatter plots, time series charts, high-low-open-close charts, candlestick plots, Gantt charts, combined plots, thermometers, dials and more. JFreeChart can be used in applications, applets, servlets and JSP."

    Je crois que le problème ne vient pas de JFreeChart, mais de ma conception des jsp. Je uis encore débutant, et je ne jamais fais du developpement web. J'ai essayé de lire la doc, mais j'ai pas pigé grand chose.

    J'ai compris qu'on peut pas envoyé plusieurs reponse à la fois. Et j'ai dû lire dans un forum qu'il fallait créer les panel (avec JFreeChart) dans une jsp appart, puis l'intégrer a ma page comme une image (c'est ce que j'ai compris, peut être que je me trompe!!).

  6. #6
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Le problème est que je n'ai jamais utilisé JFreeChart.
    Je ne peux donc pas t'être d'une grande aide.

    Toutefois, il y a quand même quelque chose qui me semble louche (mais je me trompe peut-être) : ton ThreeBarsPanel étend JPanel.
    Or, JPanel est une classe de l'API Swing, qui est utilisée pour interfacer des applications JSE (Java standard) et non des applications JEE (Java entreprise).
    Je vois mal comment un JPanel Swing pourrait s'intégrer dans une page JSP...
    Peut-être est-ce là ton problème...

    Pour info, tu peux voir le JSP comme de l'ASP (ou encore comme du PHP).
    En effet, le JSP te permet de générer dynamiquement du HTML.
    Pour faire cela, il te suffit d'inclure du code Java (entre <% et %>) - ou des taglibs - dans ta page JSP.
    Cependant, il faut toujours garder à l'esprit qu'au finale, ce sont des pages HTML qui sont générées...
    Par conséquent, tu ne peux pas utiliser tout ce que tu veux (comme des composants Swing, par exemple) dans une page JSP.
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Jette un oeil à cette discussion.

    C'est un exemple réalisé avec Struts mais ce qui est codé dans la méthode execute de l'Action peut très bien être codé dans la méthode service d'une Servlet.

    Tu peux donc t'en inspirer pour modifier ta classe ThreeBarsPanel que tu pourras appeler dans la servlet.
    Elle ne doit effectivement pas étendre JPanel, mais simplement renvoyer un chart pour pouvoir exécuter le code qui permet de le rendre accessible depuis la jsp, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	String filename = ServletUtilities.saveChartAsJPEG(jfreechart, largeur, hauteur, info, request.getSession());
     
    	Graphe graphe = this.initImage(request, info, filename);
     
    	request.setAttribute("graphe",graphe) ;
    Et dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ page language="java"%>
    <%@ page import="nomDuPackage.Graphe" %>
     
    <%
            Graphe graphe = (Graphe) request.getAttribute("graphe") ;
            String map = graphe.getMap() ;
            String src = graphe.getSrc() ;
            String useMap = graphe.getUseMap() ;
    %>
     
    <div align="center">
    	<%=map%>
    	</br>
    	<img src=<%=src%> usemap=<%=useMap%> border="0">
    </div>
    Modératrice Java - Struts, Servlets/JSP, ...

  8. #8
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Citation Envoyé par aJavaDevelopper
    Le problème est que je n'ai jamais utilisé JFreeChart.
    Je ne peux donc pas t'être d'une grande aide.

    Toutefois, il y a quand même quelque chose qui me semble louche (mais je me trompe peut-être) : ton ThreeBarsPanel étend JPanel.
    Or, JPanel est une classe de l'API Swing, qui est utilisée pour interfacer des applications JSE (Java standard) et non des applications JEE (Java entreprise).
    Je vois mal comment un JPanel Swing pourrait s'intégrer dans une page JSP...
    Peut-être est-ce là ton problème...

    Pour info, tu peux voir le JSP comme de l'ASP (ou encore comme du PHP).
    En effet, le JSP te permet de générer dynamiquement du HTML.
    Pour faire cela, il te suffit d'inclure du code Java (entre <% et %>) - ou des taglibs - dans ta page JSP.
    Cependant, il faut toujours garder à l'esprit qu'au finale, ce sont des pages HTML qui sont générées...
    Par conséquent, tu ne peux pas utiliser tout ce que tu veux (comme des composants Swing, par exemple) dans une page JSP.
    Voilà exactement pourquoi je lui conseillais de lire un tuto ... Ca doit être l'intro de n'importe quelle présentation de J2EE, et ça t'aurait éviter de réécrire ce message.
    Après, pour l'intégration de JFreeChart, je ne connais pas non plus mais je n'imagine pas qu'il n'y ait pas un seul exemple/illustration d'inclusion dans une jsp. Seulement, quand tu n'as pas compris ce qu'est une appli Web, tu as du mal à comprendre les tutos/exemples sur des choses plus précises d'où retour à ma remarque d'origine !!!

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    Ce site explique comment insérer JfreeChart dans une JSP,

    http://cewolf.sourceforge.net/new/index.html

    @+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    merci, mais juste une precision: le chart inséré danbs une jsp reste-il intéractif? (écoute d'action...)

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par c_nvy
    Jette un oeil à cette discussion.

    C'est un exemple réalisé avec Struts mais ce qui est codé dans la méthode execute de l'Action peut très bien être codé dans la méthode service d'une Servlet.

    Tu peux donc t'en inspirer pour modifier ta classe ThreeBarsPanel que tu pourras appeler dans la servlet.
    Elle ne doit effectivement pas étendre JPanel, mais simplement renvoyer un chart pour pouvoir exécuter le code qui permet de le rendre accessible depuis la jsp, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	String filename = ServletUtilities.saveChartAsJPEG(jfreechart, largeur, hauteur, info, request.getSession());
     
    	Graphe graphe = this.initImage(request, info, filename);
     
    	request.setAttribute("graphe",graphe) ;
    Et dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ page language="java"%>
    <%@ page import="nomDuPackage.Graphe" %>
     
    <%
            Graphe graphe = (Graphe) request.getAttribute("graphe") ;
            String map = graphe.getMap() ;
            String src = graphe.getSrc() ;
            String useMap = graphe.getUseMap() ;
    %>
     
    <div align="center">
    	<%=map%>
    	</br>
    	<img src=<%=src%> usemap=<%=useMap%> border="0">
    </div>
    bonjour c_nvy, dans ce code, faut-il modifier la classe Graphe par un type de graphique (ex BarChartDemo1)?

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Non, pas du tout.

    La classe Graphe contient simplement getter et setter sur les propriétés map, src et useMap utiles à l'affichage du graphe dans la jsp.

    Le code relatif au type de graphique doit être mis dans une autre classe à laquelle il faudra faire appel dans l'Action.
    Dans mon exemple, j'avais tout mis dans l'Action pour simplifier la discussion.

    Tiens, voici un exemple basé sur BarChartDemo1 :

    classe BarChart :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    public class BarChart
    {
        private static CategoryDataset createDataset()
        {
            String s = "First";
            String s1 = "Second";
            String s2 = "Third";
            String s3 = "Category 1";
            String s4 = "Category 2";
            String s5 = "Category 3";
            String s6 = "Category 4";
            String s7 = "Category 5";
            DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
            defaultcategorydataset.addValue(1.0D, s, s3);
            defaultcategorydataset.addValue(4D, s, s4);
            defaultcategorydataset.addValue(3D, s, s5);
            defaultcategorydataset.addValue(5D, s, s6);
            defaultcategorydataset.addValue(5D, s, s7);
            defaultcategorydataset.addValue(5D, s1, s3);
            defaultcategorydataset.addValue(7D, s1, s4);
            defaultcategorydataset.addValue(6D, s1, s5);
            defaultcategorydataset.addValue(8D, s1, s6);
            defaultcategorydataset.addValue(4D, s1, s7);
            defaultcategorydataset.addValue(4D, s2, s3);
            defaultcategorydataset.addValue(3D, s2, s4);
            defaultcategorydataset.addValue(2D, s2, s5);
            defaultcategorydataset.addValue(3D, s2, s6);
            defaultcategorydataset.addValue(6D, s2, s7);
            return defaultcategorydataset;
        }
        public static JFreeChart createChart()
        {
            CategoryDataset categorydataset = createDataset();
     
            JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
            jfreechart.setBackgroundPaint(Color.white);
            CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
            categoryplot.setBackgroundPaint(Color.lightGray);
            categoryplot.setDomainGridlinePaint(Color.white);
            categoryplot.setDomainGridlinesVisible(true);
            categoryplot.setRangeGridlinePaint(Color.white);
            NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
            numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer();
            barrenderer.setDrawBarOutline(false);
            GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color(0, 0, 64));
            GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
            GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
            barrenderer.setSeriesPaint(0, gradientpaint);
            barrenderer.setSeriesPaint(1, gradientpaint1);
            barrenderer.setSeriesPaint(2, gradientpaint2);
            CategoryAxis categoryaxis = categoryplot.getDomainAxis();
            categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.52359877559829882D));
            return jfreechart;
        }
    }
    classe Graphe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public class Graphe implements Serializable
    {
    	private String map ;
    	private String src ;
    	private String useMap ;
     
    	public String getMap()
    	{
    		return map;
    	}
    	public void setMap(String map)
    	{
    		this.map = map;
    	}
    	public String getSrc()
    	{
    		return src;
    	}
    	public void setSrc(String src)
    	{
    		this.src = src;
    	}
    	public String getUseMap()
    	{
    		return useMap;
    	}
    	public void setUseMap(String useMap)
    	{
    		this.useMap = useMap;
    	}
    }
    Servlet BarChartServlet qui fait appel à la classe BarChart :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class BarChartServlet extends HttpServlet
    {
    	public void service (HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
    	{
    	        JFreeChart jfreechart = BarChart.createChart() ;
     
                    ChartRenderingInfo chartRenderingInfo = new ChartRenderingInfo(new StandardEntityCollection());
     
                    int largeur = 900 ;
                    int hauteur = 600 ;
     
    		String filename = ServletUtilities.saveChartAsJPEG(jfreechart, largeur, hauteur, chartRenderingInfo, request.getSession());
     
    		Graphe graphe = this.initImage(request, chartRenderingInfo, filename);
     
    		request.setAttribute("graphe",graphe) ;
     
    		RequestDispatcher disp=getServletContext().getRequestDispatcher("/graphe.jsp");
    		disp.forward(request,response) ;
    	}
    	private Graphe initImage(HttpServletRequest request,ChartRenderingInfo chartRenderingInfo, String filename)
    	{
    		String map = ChartUtilities.getImageMap(filename, chartRenderingInfo);
    		String src = request.getContextPath()+"/servlet/DisplayChart?filename=" + filename ;
    		String useMap = "#" + filename  ;
     
    		Graphe graphe = new Graphe() ;
    		graphe.setMap(map);
    		graphe.setSrc(src) ;
    		graphe.setUseMap(useMap) ;
     
    		return graphe ;
    	}
    }
    graphe.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ page language="java"%>
    <%@ page import="nomDuPackage.Graphe" %>
     
    <%
            Graphe graphe = (Graphe) request.getAttribute("graphe") ;
            String map = graphe.getMap() ;
            String src = graphe.getSrc() ;
            String useMap = graphe.getUseMap() ;
    %>
     
    <div align="center">
    	<%=map%>
    	</br>
    	<img src=<%=src%> usemap=<%=useMap%> border="0">
    </div>
    Modératrice Java - Struts, Servlets/JSP, ...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    est ce qu'il faut modifier le web.xml?
    voila ce que j'ai :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0"?>
     
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
    	<welcome-file-list>
    		<welcome-file>authentification.jsp</welcome-file>
    	</welcome-file-list>
    	<servlet>
    		<servlet-name>DisplayChart</servlet-name>
    	        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>DisplayChart</servlet-name>
    		<url-pattern>/servlet/DisplayChart</url-pattern>
    	</servlet-mapping>
    </web-app>

  14. #14
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faut effectivement déclarer la servlet DisplayChart dans le web.xml.
    Mais attention, il y a un ordre à respecter dans les balises du web.xml.
    La balise <welcome-file-list> doit être après la balise <servlet-mapping>.

    Et modifie la balise web-app comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
    Modératrice Java - Struts, Servlets/JSP, ...

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    GlamIs, désolé pour le retard mais j'etais en weekend !

    Sinon, il existe bien des types de graphiques avec JfreeChart qui sont dynamiques c'est à dire qui évoluent fonction du temps ou suivant une action comme l'appui sur un bouton :

    http://www.java2s.com/Code/Java/Char...icDataDemo.htm

    tu trouveras un exemple de code ici.

    @+

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    merci c_nvy, mais il y un petit détail qui me trouble ou plutot deux :
    la servlet BarCharServlet n'est jamais applée,
    et dans le web.xml, on a déclaré la servlet DisplayChar mais faut-il l'implémenter?!!

    merci pour votre aide

  17. #17
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Effectivement, je n'ai pas précisé qu'il fallait définir la servlet BarCharServlet dans le web.xml tout simplement parce que ça me paraissait évident.
    Toute servlet que tu crées et que tu veux pouvoir exécuter doit être définie dans le web.xml.
    Modératrice Java - Struts, Servlets/JSP, ...

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    ok merci, je commence a voir le bout du tunnel ^^,
    mais j'ai un petit probleme avec la création des graphes. AU fait, j'arrive pas a sauver le graphique "temporairement" pour le récupérer après lors de l'affichage!!

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    Voila l'erreur qu'il me retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    description The server encountered an internal error () that prevented it from fulfilling this request.
     
    exception 
     
    javax.servlet.ServletException: Servlet execution threw an exception
    	BIOmonitor.LoginTestServlet.service(Unknown Source)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     
     
    root cause 
     
    java.lang.NoClassDefFoundError
    	java.lang.Class.forName0(Native Method)
    	java.lang.Class.forName(Class.java:164)
    	java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
    	java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1141)
    	org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1387)
    	org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1368)
    	org.jfree.chart.ChartUtilities.writeChartAsJPEG(ChartUtilities.java:414)
    	org.jfree.chart.ChartUtilities.saveChartAsJPEG(ChartUtilities.java:508)
    	org.jfree.chart.servlet.ServletUtilities.saveChartAsJPEG(ServletUtilities.java:265)
    	BIOmonitor.BarChartServlet.service(Unknown Source)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	BIOmonitor.LoginTestServlet.service(Unknown Source)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

  20. #20
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Quel serveur d'application utilises-tu ?
    Modératrice Java - Struts, Servlets/JSP, ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Graphique avec Turbo Pascal 7
    Par Sagiro dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 21/12/2004, 09h52
  2. [Free Pascal] Graphique avec Dev-Pascal
    Par CompuTux dans le forum Free Pascal
    Réponses: 15
    Dernier message: 03/09/2004, 02h15
  3. [Struts] pb avec jsp:include
    Par njac dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 10/06/2004, 16h14
  4. Caractéristique des Graphiques avec Tchart
    Par bidson dans le forum XMLRAD
    Réponses: 5
    Dernier message: 19/01/2004, 11h01
  5. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo