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 :

acceder à une liste contenue dans une liste


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut acceder à une liste contenue dans une liste
    Bonjour

    comment acceder et afficher dans une page JSP une liste qui est elle meme contenu dans une liste passé en paramtre de sesison??
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  2. #2
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Tu peux imbriquer des <c:forEach> comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:forEach var="list" items=${session.taVariable}>
       <c:forEach var="currentItem" items=${list}>
           // accès à ton objet courant par ${currentItem}
       </c:forEach>
    </c:forEach>
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  3. #3
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                            <display:table cellpadding="0" cellspacing="0" name="${allUser}" decorator="be.qspin.qats.utilities.Decorator" defaultsort="1" pagesize="20" sort="list">         
                                <display:column property="login" title="login" sortable="true"/> 
                                <display:column property="password" title="password" sortable="true"/>
                                <display:column property="roles" title="Roles" sortable="true">                            
                                    <%--logic:iterate collection="${allUser.roles}" id="roles" name="roles">                                    
                                    </logic:iterate--%>
                                    <c:forEach items="${allUser}" var="roles">
                                        ${roles.id} - ${roles.role}
                                    </c:forEach>
                                </display:column>
                                <display:column property="userSelected" title="Action"/>
                            </display:table>
    mais la seconde liste m'affiche touujours la clé de la hashset.
    et si je met items="${allUser.roles}" il me met une erreur me disant que le . n'est pas correct

    jete un coup d'oeil ici
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  4. #4
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    ton allUser est dans quelle scope?
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  5. #5
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    il est dans le scope session
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  6. #6
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Juste pour clarifier:

    allUser est un ArrayList contenant des Roles c'est ca?
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  7. #7
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    en allUser est bien une arryList qui contient des classes de type User. La classe User a parmi ses attribut un attribut roles qui est une interface "Set" implemantant la classe "HashSet"

    c'est pour ca que lors de l'affichage, ca m'affiche les clé contenu dans roles et non pas les données réel qui sont associer a ces clé.

    mais je ne sais pas comment faire pour acceder puis afficher ces données réel (en JSP j'entend bien)
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  8. #8
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    T'as essayé comme ca?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:forEach var="list" items=${sessionScope.allUser}>
       <c:forEach var="currentItem" items=${list["Roles"]}>
           // accès à ton objet courant par ${currentItem}
       </c:forEach>
    </c:forEach>
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  9. #9
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    meme réponse que précedement, ca ne change rien
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  10. #10
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    ${currentItem.id} t'affiche une clé???

    Tu peux juste montrer le code qui insère ta List allUsers dans la session stp?
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  11. #11
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    et voila :
    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
            String login = ((LogonForm) form).getLogin();
            String password = ((LogonForm) form).getPassword();
     
     
            if (isCancelled(request)){
                return mapping.findForward(CANCEL);
            }
     
            User user = Users.AuthenticateUser(login, password);
            if (user != null){
     
     
                HttpSession session = request.getSession();
                session.setAttribute("user", user);
                session.setAttribute("allUser", Users.getUsers());
                session.setAttribute("allRole", Roles.getRoles());
                return mapping.findForward(SUCCESS);
            } else{
                ActionErrors errors = new ActionErrors();
                errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.logon.connect"));
                saveMessages(request,errors);
                return (new ActionForward(mapping.getInput()));
            }
    et comment j'ai modifier ma 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
     <display:table cellpadding="0" cellspacing="0" name="${allUser}" decorator="be.qspin.qats.utilities.Decorator" defaultsort="1" pagesize="20" sort="list">         
                                <display:column property="login" title="login" sortable="true"/> 
                                <display:column property="password" title="password" sortable="true"/>
                                <display:column property="roles" title="Roles" sortable="true">                            
                                    <%--logic:iterate collection="${allUser.roles}" id="roles" name="roles">                                    
                                    </logic:iterate--%>
                                    <c:forEach var="list" items=${sessionScope.allUser}>
                                        <c:forEach var="currentItem" items=${list["Roles"]}>
                                        ${currentItem};
                                        // accès à ton objet courant par ${currentItem}
                                        </c:forEach>
                                    </c:forEach>
                                </display:column>
                                <display:column property="userSelected" title="Action"/>
                            </display:table>
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  12. #12
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Mais là il me semble que ca ne correspond pas directement à ta description?

    Tu as un allUser et un allRole dans ta session c'est normal?

    Perso j'ai testé chez moi et pas de problème. Un ArrayList de User et chaque User contient un HashSet de Role, j'ai mis l'ArrayList en session et pour lister j'ai donc écrit ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:forEach items="${sessionScope.allUsers}" var="users">
            <c:forEach items="${users.roles}" var="role">
                ${role.id} - ${role.name} <br/>
            </c:forEach>
        </c:forEach>
    Et tout fonctionne...
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  13. #13
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    salut,

    la list allrole correspond a tous les roles displonible et je l'utilise plus bas dans la page.

    alors que celle contenu dans allUser donne uniquement les roles associés a l'utilisateur.

    Je ne sais vraiment pas quoi faire, j'ai copie/coller ton code et j'ai toujours le meme probleme.

    il doit bien yavoir un endroit ou je fais mal quelquechose!!!
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

  14. #14
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Tu es certain d'accéder aux bons objets?
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  15. #15
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par Pollux
    Tu es certain d'accéder aux bons objets?
    voici mes classes :
    ma classe User
    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
    package be.qspin.qats.entities;
    // Generated 11-juin-2007 10:19:11 by Hibernate Tools 3.2.0.beta7
     
     
    import java.util.HashSet;
    import java.util.Set;
     
    /**
     *             Define an "User" entity.
     *             @author Florian Guillemotte
     *         
     */
    public class User  implements java.io.Serializable {
     
        // Fields    
     
         private Integer id;
         private String login;
         private String password;
         private Set roles = new HashSet(0);
     
         // Constructors
     
        /** default constructor */
        public User() {
        }
     
        /** minimal constructor */
        public User(String login) {
            this.login = login;
        }
        /** full constructor */
        public User(String login, String password, Set roles) {
           this.login = login;
           this.password = password;
           this.roles = roles;
        }
     
        // Property accessors
        public Integer getId() {
            return this.id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
        public String getLogin() {
            return this.login;
        }
     
        public void setLogin(String login) {
            this.login = login;
        }
        public String getPassword() {
            return this.password;
        }
     
        public void setPassword(String password) {
            this.password = password;
        }
        public Set getRoles() {
            return this.roles;
        }
     
        public void setRoles(Set roles) {
            this.roles = roles;
        }
     
     
     
     
    }
    et ma classe role
    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
    package be.qspin.qats.entities;
    // Generated 11-juin-2007 10:19:11 by Hibernate Tools 3.2.0.beta7
     
     
     
    /**
     *     Define an "Role" entity.
     *     @author Florian Guillemotte
     *     
     */
    public class Role  implements java.io.Serializable {
     
        // Fields    
     
         private Integer id;
         private String role;
     
         // Constructors
     
        /** default constructor */
        public Role() {
        }
     
        /** full constructor */
        public Role(String role) {
           this.role = role;
        }
     
        // Property accessors
        public Integer getId() {
            return this.id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
        public String getRole() {
            return this.role;
        }
     
        public void setRole(String role) {
            this.role = role;
        }
     
     
     
     
    }
    Tout à une fin, sauf le saucisson qui en as 2.
    -----------------

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2013, 21h06
  2. Réponses: 4
    Dernier message: 24/08/2011, 18h23
  3. Réponses: 3
    Dernier message: 07/04/2011, 14h38
  4. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  5. Changer un caractère dans une chaîne contenue dans une phrase
    Par cirtey dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 07/03/2007, 16h16

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