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

Struts 1 Java Discussion :

un coup de pouce pour affichage BDD dans JSP


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut un coup de pouce pour affichage BDD dans JSP
    Bonjour tout le monde,

    Je vous écris parce que je me tire les cheveux sur un problème d'affichage de contenu de BDD dans une JSP.

    Le but est d'afficher dans une jsp une liste de départements présent dans la bdd.

    Je travaille sous struts.

    Voilà les fichiers que j'ai créé :

    DepartementBean.java
    DepartementSQL.xml
    DepartementAction.java
    DepartementDAO.java
    DepartementMapDAO.java
    index.jsp
    content.departement.jsp.

    Mon problème est l'affichage de cette liste dans ma jsp.

    Eclipse me renvoie l'erreur :
    cannot find "departementList" in any scope.
    Donc il y a souci d'interaction entre jsp et l'action.
    (j'ai bien déclaré mon mapping dans Sql.map et ma dao dans Dao.xml)

    ci dessous mon action DepartementAction.java:
    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
    public class DepartementAction extends Action {
     
     
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
     
    		DaoManager daoManager = ConfigDAO.getDaoManager();
     
     
    		try {
    			daoManager.startTransaction();
    			DepartementDAO departementDAO = (DepartementDAO) daoManager.getDao(DepartementDAO.class);
     
    			this.setDepartementList(departementDAO, request);
    			daoManager.commitTransaction();
     
    		}
    		catch (Exception e) {
    			 daoManager.endTransaction();
    	         throw e;
    		}
     
    		return mapping.findForward("redirect");
    	}
     
     
    	public void setDepartementList(DepartementDAO departementDAO,HttpServletRequest request) {
     
     
     
    		List<DepartementBean> departementList = departementDAO.getDepartementList();
    		request.setAttribute("departementList", departementList);
    	} 
     
    }
    ci dessous mon index.jsp (qui appelle un template et content.departement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tiles:insert definition="template.HTMLEbizFrontContent" flush="true">
     
    	<tiles:put name="content" value="/departement/content.departement.jsp"  />
    	<tiles:put name="title" type="String" value="Les départements t" />
     
    </tiles:insert>
    et enfin mon content.departement.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
    16
    17
    18
    19
    Ci dessous les departements 
     
    <table>
     
     
    <logic:iterate id="deptmp" name="departementList">
     
    <tr>
     
    <td><bean:write name="deptmp" property="code" /></td>
     
    <td><bean:write name="deptmp" property="nom_departement" /></td>
     
    </tr>
     
    </logic:iterate>
     
     
    </table>
    Dans mon action, "departementList" contient bien les valeurs de la BDD.

    C'est la jsp qui n'arrive pas à récupérer departementList.

    l'erreur récupérée :
    /content.departement.jsp': Cannot find bean departementList in any scope
    je pense être proche de la solution mais je commence à m'embrouiller et je ne voudrais pas tout foutre en l'air.

    Si vous pouviez me donner un coup de pouce (encore ) je vous en serais gré .

    Merci d'avance!!

  2. #2
    Expert confirmé

    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
    Par défaut
    N'aurais-tu pas mis par hasard l'attribut redirect à true dans le forward de nom "redirect" ?
    Si c'est le cas, mets-le à false.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    exact j'ai bien mis à true le redirect.

    C'est un miracle ça marche!!!

    Une question : dans ma base les chiffres sont écrit comme ça :
    01
    02
    03
    Mais dans ma jsp ils sont affichés de cette manière :
    1
    2
    3
    Comment fait on pour afficher avec le 0 devant ??

    Merci d'avance et merci encore de l'astuce !!

  4. #4
    Expert confirmé

    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
    Par défaut
    Si la propriété est bien de type numérique, int ou autre, tu peux utiliser l'attribut format du tag bean:write, comme indiqué dans la FAQ Struts.

    Si elle est de type String, pour pouvoir utiliser l'attribut format, il faut ajouter dans l'ActionForm un autre getter qui convertit le String en numérique et modifier en conséquence la propriété référencée dans l'attribut property du tag bean:write afin que ce soit ce getter qui soit appelé.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je ne ferais pas ça...

    Il serait préférable de créer une classe utilitaire avec une (ou plusieurs) méthode statique pour formater l'attribut côté JSP.
    Un peu comme ceci
    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
     
    package com.obia.utils;
     
    import java.text.DecimalFormat;
     
    public class Formatter
    {
        public static String decimal(Number source, String pattern)
        {
            if (source == null) return "";
     
            Double number = (Double)source;
     
            if (pattern == null || pattern.trim().length() == 0) pattern = "0.00";
            DecimalFormat df = new DecimalFormat(pattern);
     
            return df.format(number);
        }
     
        ...
    }
    Côté page JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%
        double num = 1;
    %>
     
    Une donnée décimale <%=Formatter.decimal(num, "#,#00")%>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    merci beaucoup pour vos réponses !!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème pour l'affichage bdd dans un JTable
    Par ciolvic dans le forum Débuter
    Réponses: 1
    Dernier message: 29/04/2009, 14h14
  2. Petit coup de pouce : gui et bdd
    Par sparko_dutos dans le forum Général Python
    Réponses: 2
    Dernier message: 19/07/2007, 20h51
  3. coup de pouce pour chargement dans clip
    Par seb127 dans le forum Intégration
    Réponses: 7
    Dernier message: 11/07/2007, 10h02
  4. besoin d'un coup de pouce pour strcmp
    Par echantillon dans le forum C
    Réponses: 17
    Dernier message: 04/01/2007, 20h43
  5. Besoin d'1 coup de pouce pour realiser une importation de BD
    Par gizmorambo dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/08/2005, 14h07

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