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 :

listes déroulantes liées


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut listes déroulantes liées
    Bonjour,
    je suis entraine de développer une application Web et j'utilise Struts. je voudrais cree deux liste déroulante dans le contenu de la deuxième et dépend de la 1 ere, mais je bloque sur ce point. j'ai essayé de faire :

    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
     
    <jsp:useBean id="listCountrySiteBean" scope="session" class="com.atosorigin.ssc.portal.treatment.ListeCountrySite"/>
    <jsp:useBean id="listTemplateBean" scope="session" class="com.atosorigin.ssc.portal.treatment.ListTemplateProjectReq"/>
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
    <script type="text/javascript">
    function submitChange ( ){
    // --- Modification du parametre action qui va permettre d'appeller la bonne méthode JAVA a éxécuter.
    document.forms[0].action.value = 'change';
    // --- Soumission du formulaire.
    document.forms[0].submit;
    }
    </script>
    <body>
    <%@ include file="header.jsp" %>
    <table class="mainlayout">
    <tr height=467>
    <td bgcolor='#F0F0F0' WIDTH=200 valign="bottom"></td>
    <td width=2></td>
    <td WIDTH=890 valign="top">
    <div class='logo' >
    <img src="<%=request.getContextPath()%>/images/logosscmiddle.png" alt='Atos Origin' title='Atos Origin'/>
    </div>
    <table class="columnsFlow">
    <tr>
    <td><br>
    <h2>Create Project REQPro</h2>
    <table>
    <html:form action="/actionCreatProjectReqPro">
    <tr>
    <td width=50>Country Name</td>
    <td>
    <html:select property="pays" onchange="javascript:submitChange()">
    <html:options name="listCountrySiteBean"
    property = "listCountry"/>
    </html:select>
    </td>
    </tr>
    <tr>
    <td width=50>Site Name</td>
    <td>
    <html:select property="region">
    <html:options name="listSite"/>
    </html:select>
    </td>
    </tr>
    <tr>
    <td width=50>Template Name</td>
    <td>
    <html:select property="template">
    <html:options name ="listTemplateBean"
    property ="listeTemplate"/>
    </html:select>
    </td>
    </tr>
    <tr>
    <td width=50>Client Name</td>
    <td><html:text property="clinetName"/>
    </td>
    </tr>
    <tr>
    <td width=50>Project name</td>
    <td><html:text property="projectName"/>
    </td>
    </tr>
    <tr>
    <td align="center"><html:submit/>
    </td>
    </html:form>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <%@ include file="footer.jsp" %>
    </body>
    </html>
    et dans la classe action je fait ca :
    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
     
    public ActionForward change (final ActionMapping mapping,
    final ActionForm form,
    final HttpServletRequest request,
    final HttpServletResponse response){
    ActionForward forward = new ActionForward();
    //test of creatProjectReqProForm
    ArrayList<String> listSite = new ArrayList<String>();
    if (request.getParameter("pays") != null){
    listSite.add("aa");
    listSite.add("bb");
    listSite.add("cc");
    request.setAttribute("listSite", listSite);
    forward = mapping.findForward(ActionForwardConstants.FORWARD_ACTION_CONF);
    } else {
    listSite.add("--chose a site --");
    request.setAttribute("listSite", listSite);
    forward = mapping.findForward(ActionForwardConstants.FORWARD_ACTION_CONF);
    }
    return forward;
    }
    mais ça marche pas du tout j'arrive à afficher que la première liste. est ce que vous avez une piste SVP c'est très urgent

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Salut,

    >>ici<<

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut
    Citation Envoyé par littlebear Voir le message
    Salut,

    >>ici<<
    Bonjour et merci pour ta repense. j'ai déjà vu ce lien et j'ai essayé mais name n'existe pas je croix dans la version de struts que j'utilise. bon je vais expliquer. il me sort aucun erreur de compilation mais lorsque je demande ma ressource il me dit getter non renseigner pour la propriété name.

    <html:form name= "myform">
    <html:select property="list1" onchange="document.myform.submit()">
    ...
    </html:select>
    <html:select property="list2">
    ...
    </html:select>
    </html:form>

    on plus je suis débutant dans struts donc pour ca aussi :

    Lors d'un changement, un premier submit est déclenché par l'événement "onchange" de la liste list1.
    Lors de cette soumission, il faut dans l'Action ou dans l'ActionForm définir les valeurs possibles retournées pour la liste list2.
    Ainsi, celles-ci seront affichées lors du réaffichage du formulaire.
    ma question est comment on fait exactement pour définir les valeur possible pore la liste2 dans la calss d'action. Merci

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    Pour ma part j'avais un peu le même souci:

    J'ai utilisé onchange et recharger mon action en spécifiant une nouvelle requête qui va chercher mes nouvelles données en fonction du résultat de ma 1ère liste (ecole).
    liste Ecole défini Classes et liste Section défini Niveau

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <html:form action="/ecoleModifAction">
     
     
    			<html:hidden property="codEcoleUsa" value="${fEF.codEcoleUsa}"></html:hidden>
    			<html:hidden property="codUsa" value="${fEF.codUsa}"></html:hidden> 
    			<html:hidden property="nom" value="${fEF.nom}"></html:hidden>
    			<html:hidden property="prenom" value="${fEF.prenom}"></html:hidden>
     
    			Ecole:<br> <html:select property="ecole" value="${fEF.ecole}" onchange="this.form.action='ecoleFicheRechargeAction.do?rechargeEcole=ok';this.form.submit( );">
    			<html:optionsCollection name="ecoles" value="codEcole" label="desEcole"/>
    			</html:select>
    			<br><br>
     
    			Classe:<br> <html:select property="classe" value="${fEF.classe}">
    			<html:optionsCollection name="classes" value="codClasse" label="desClasse"/>
    			</html:select>
    			<br><br>
     
    			Section:<br> <html:select property="section" value="${fEF.section}" onchange="this.form.action='ecoleFicheRechargeAction.do?rechargeEcole=ok';this.form.submit( );">
    			<html:optionsCollection name="sections" value="codSection" label="desSection"/>
    			</html:select>
    			<br><br>
     
    			Niveau:<br> <html:select property="niveau" value="${fEF.niveau}">
    			<html:optionsCollection name="niveaux" value="codNiveau" label="desNiveau"/>
    			</html:select><br><br>
     
    		<div align="center">	
    		<html:submit value="Modifier" onclick="javascript:if (!confirm('Etes-vous sûr de vouloir modifier la fiche Ecole ?')) return false;"/>
    		</div>
    		</html:form>
    ma classe 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
    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
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
     
    		String recharge = request.getParameter("rechargeEcole");
    		UsagerEcoleForm fEF = new UsagerEcoleForm();
    		EcoleUsa ficheEcole = new EcoleUsa();
     
    		if (recharge.equals("ok")){
     
    			fEF = (UsagerEcoleForm) form;
    	    	ficheEcole = new EcoleUsa(ecoleUsaBS.getSection(fEF.getSection()),ecoleUsaBS.getEcole(fEF.getEcole()),ecoleUsaBS.getNiveau(fEF.getNiveau()),ecoleUsaBS.getClasse(fEF.getClasse())); 
     
    		}else{
     
     
    			String codUsa = request.getParameter("ficheEcole");
     
    			ficheEcole = ecoleUsaBS.ficheEcole(Long.parseLong(codUsa));
     
    			fEF.setCodUsa(Long.parseLong(codUsa));
    	    	fEF.setCodEcoleUsa(ficheEcole.getCodEcoleUsa());
    	    	fEF.setNom(ficheEcole.getUsager().getNom());
    	    	fEF.setPrenom(ficheEcole.getUsager().getPrenom());	
     
    	    	fEF.setEcole(ficheEcole.getEcole().getCodEcole());
    	    	fEF.setClasse(ficheEcole.getClasse().getCodClasse());
    	    	fEF.setSection(ficheEcole.getSection().getCodSection());
    	    	fEF.setNiveau(ficheEcole.getNiveau().getCodNiveau());
     
    		}
     
        	List<Ecole> ecoles = ecoleUsaBS.getEcoles();
    		List<Classe> classes = ecoleUsaBS.getListeClasse(ficheEcole.getEcole().getCodEcole());
    		List<Section> sections = ecoleUsaBS.getSections();
    		List<Niveau> niveaux = ecoleUsaBS.getListeNiveau(ficheEcole.getSection().getCodSection());
     
    		request.setAttribute("ecoles", ecoles);
    		request.setAttribute("classes", classes);
    		request.setAttribute("sections", sections);
    		request.setAttribute("niveaux", niveaux);
        	request.setAttribute("fEF", fEF);
     
     
    		return mapping.findForward("success");
     
    	}
    J'utilise mon ActionForm pour récupérer les valeurs de ma listes.

    Si ca peu t'aider ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut
    merci beaucoup c très gentil. ça marché

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut
    voila une autre manière simple :
    dans le page 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
    <html:form action="/actionCreatProjectReqPro">
    								<tr>
    									<td width=50>Country Name</td>
    									<td>
    										<html:select property="country" onchange="this.form.submit()">
    										<html:options name="ListeCountrySiteBean"
    											  property = "listCountry"/>
    										</html:select>
    									</td>
    								</tr>
    								<tr>
    									<td width=50>Site Name</td>
    									<td>
    										<html:select property="site">
    										<html:options name="listSite"/>
    										</html:select>
    									</td>
    								</tr>

Discussions similaires

  1. Debug script listes déroulantes liées
    Par AnTiX dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/04/2005, 12h03
  2. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45
  3. listes déroulantes liées
    Par k4eve dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/04/2004, 15h11
  4. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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