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 2 Java Discussion :

Problème combo avec liste


Sujet :

Struts 2 Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 31
    Points
    31
    Par défaut Problème combo avec liste
    Bonsoir à tous,
    Je travail sur un projet avec struts 2 et hibernate, et j'essaie de remplir un combobox avec le résultat d'une requete crée avec Hibernate.

    Mon 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
    20
    21
    22
    23
    24
    25
    26
    <%@page import="org.apache.tools.ant.taskdefs.Echo"%>
    <%@ page import="java.sql.*" language="java"
        contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/lib/struts-html.tld" prefix="html"%>
    <%@ taglib uri="/WEB-INF/lib/struts-bean.tld" prefix="bean"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title><bean:message key="title" /></title>
    <script type="text/javascript" src="../../js/script.js"></script>
    </head>
    <body>
        <jsp:param name="title" value="Ajouter" />
    </jsp:include>
    <div id="corp"><html:errors /> <html:form
        action="VArriveeAction.do">
        <label><bean:message key="label.categ" /></label>
        <html:select property="categorie">
            <html:options collection="listeCategorie" property="categorie"
                labelProperty="categorie" />
        </html:select>
     
    </html:form></div>
    </body>
    </html>
    Mon fichier action (DeclarerArriveeAction)
    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
    public class DeclarerArriveeAction extends Action
    {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws HibernateException
        {
            Session session = HibernateUtil.currentSession();
     
            List listeCategorie = session.find("from Categorie");
            Iterator itCategorie = listeCategorie.iterator();
            while (itCategorie.hasNext())
            {
                Categorie cat = (Categorie) itCategorie.next();
            }
            HibernateUtil.closeSession();
            return mapping.findForward("declarerArriveeFwd");
        }
    }
    J'ai cette erreur :
    javax.servlet.jsp.JspException: Cannot find bean under name listeCategorie
    J'ai regardé sur le forum est il y a apparemment possibilité de résoudre le problème en mettant le tags logic:present, mais il affiche "unknown tag".

  2. #2
    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
    Euh là, ce n'est pas Struts 2 mais Struts 1 !

    Le message d'erreur signifie qu'il ne trouve pas listeCategorie dans le scope.

    Il faut donc la mettre dans le scope request ou session dans la méthode execute de l'Action.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    J'ai ajouté ceci avant de fermer la session, mais l'erreur persiste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute("listeCategorie", listeCategorie);
    En quoi tu vois que c'est struts 1 ? (Désolé, je débute ...)

  4. #4
    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
    Parce que tu utilises les tld struts-html.tld et struts-bean.tld qui n'existent plus en Struts 2.

    Sinon, l'Action DeclarerArriveeAction s'exécute-t'elle bien avant l'affichage de la jsp ?
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    Je ne sais pas si elle s'exécute bien avant. Comment je peut m'en assurer ?
    Dans le fichier struts config, j'ai mis ceci, si sa peut aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        <action-mappings>        
             <action
                path="/ajouterArrivee"
                type="net.action.DeclarerArriveeAction"/>  
     
            <action path="/VDeclarerArriveeAction" scope="request"
                type="net.action.VDeclarerArriveeAction"
                name="frmAnimal"
                validate="true"
                input="/vues/evenements/ajouterArrivee.jsp"
            />

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Il s'agit de Struts 1,et de plus, dans Struts 2 on hérite de la classe ActionSupport...
    Suffit de charger ta liste déclaré au niveau de la classe XXXAction et d'utiliser la méthode ( Lors de la quelle tu chargeras ta liste, nommée par exemple ListeYYY)

    Au niveau de la jsp où il y aura la redirection...Il te faudra simplement faire un bout de code comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:select name="categorieChoisie" list="ListYY" listKey="id" listValue="nomCategorie" />
    où id et nomCategorie sont des attributs de la classe Categorie (Y a aussi d'autres attributs)...Voilou Et ceci c'est pour Struts 2 !
    Sinon un lien parfait ici :
    http://www.roseindia.net/struts/stru...lect-tag.shtml

  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
    Citation Envoyé par RomJo Voir le message
    Je ne sais pas si elle s'exécute bien avant. Comment je peut m'en assurer ?
    Je suppose que tu fais d'abord appel à l'Action DeclarerArriveeAction et que le forward de name declarerArriveeFwd renvoie vers la page jsp qui affiche la combo non ?
    Modératrice Java - Struts, Servlets/JSP, ...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    @c_nvy : oui je fait exactement sa.
    J'ai suivi le lien midou, et j'ai modifié mon projet. J'ai un soucis au niveau jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.jasper.JasperException: An exception occurred processing JSP page /vues/evenements/ajouterArrivee.jsp at line 47  44:  45:     <label><bean:message key="label.categ" /></label> 46:  47:         <s:select label="categorie" name="categorieChoisie" headerKey="1" headerValue="-- Choisissez --" 48:           list="listeCategorie"/> 49:  50:     <label><bean:message key="label.date_arr" /></label>
    Ma jsp contient ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            <s:select label="categorie" name="categorieChoisie" headerKey="1" headerValue="-- Choisissez --"
              list="listeCategorie"/>
    Mon action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public String execute()throws Exception{
     
                  listeCategorie = new ArrayList();
                  listeCategorie.add("categorie1");
                  listeCategorie.add("categorie2");
                  listeCategorie.add("categorie3");
                  listeCategorie.add("categorie4");
                  listeCategorie.add("categorie5");
     
                  return SUCCESS;
        }
     
                  public List getListeCategorie(){
                        return listeCategorie;
    Je comprends pas, je mets bien la liste listeCategorie dans la jsp.

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    As tu spécifié tes tags de struts 2 ? (Rassures toi d'utiliser les bons jars)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib prefix="s" uri="/struts-tags"%>

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    J'avais oublié le jars. Merci

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

Discussions similaires

  1. remplir combo avec liste des pays via un service
    Par dimainfo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/09/2009, 18h00
  2. Réponses: 1
    Dernier message: 19/01/2006, 17h54
  3. Problème avec liste déroulante
    Par Invité dans le forum IHM
    Réponses: 2
    Dernier message: 14/12/2005, 21h04
  4. [STL]Problème itérateur avec list
    Par Fiquet dans le forum SL & STL
    Réponses: 7
    Dernier message: 03/10/2005, 17h54
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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