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 :

<html:select> et onchange


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut <html:select> et onchange
    Salut à tous

    Je me permets de réecrire un message sur ce sujet car j'en ai lu déjà plusieurs sur le forum mais j'ai pas réussi à résoudre le problème...
    Alors en fait j'ai dans ma jsp une liste et j'aimerais que selon ce que l'on selectionne la page se recharge en affichant différents champs de saisie, ces derniers dépendants de ce qui a été selectionné ds la liste ...
    donc j'ai dans ma jsp :
    <html:form action="creationA.do" method="POST">
    <html:select property="typeApplicationChoisi" value="" onchange="document.forms['CreationAForm'].submit()">
    dans mon config.xml
    <form-bean name="CreationAForm" type="form.CreationAForm" />
    <action path="/creationA" name="CreationAForm" type="control.CreationAForm" >
    <forward name="accueil" path="/jsp/accueil.jsp" redirect="true" /></action>
    ds mon CreationAForm
    private String typeApplicationChoisi;
    avec d'autres attributs et leurs getters and setters

    et ds mon CreationAAction j'ai juste
    public ActionForward executeActionPAF(ActionMapping actionMapping,
    ActionForm actionForm, HttpServletRequest httpServletRequest,
    HttpServletResponse httpServletResponse, UserContainer userContainer)
    throws Exception {
    // TODO Auto-generated method stub
    return actionMapping.findForward("accueil");
    }
    Merci de m'aider ca fait plusieurs jours que je m'en sors pas ....
    j'ai oublié je travaille avec Struts 1.2.8

  2. #2
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 898
    Points
    1 898
    Par défaut
    Mais pourquoi n'utilises-tu pas AJAX : cette solution te permettra de mettre à jour ta page dynamiquement sans même soumettre ton formulaire.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    en fait je suis en stage faudrait que je demande si j'ai le droit d'utiliser AJAX même si j'y connais rien si ca peut me permettre de résoudre ce problème...
    mais je comprends pas qu'il y en ait qui arrive à faire fonctionner ce onchange et pas moi

    Merki pr cette réponse

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 898
    Points
    1 898
    Par défaut
    AJAX va te permettre de réaliser des requêtes au serveur pour pouvoir mettre à jour ta page.

    Maintenant, il y a une autre solution :
    Tu mets TOUTES tes données dans la request (où le formulaire puisque tu travailles avec struts), et dans la JSP tu implémentes une méthode javascript qui met à jour les données à partir de tes objets. Mais là, il faut que la persistance de tes données ne soient pas dépendante de l'action de l'utilisation, que la quantité et la complexité des données à passer au formulaire ne soient pas excessives. De toute manière, avec cette solution le code sera certainement plus complexe qu'avec AJAX.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    En regardant un peu le code de ton action, je suppose que le contrôleur étend DispatchAction ou LookupDispatchAction (vu le nom de la méthode).
    Donc, dans la page, il ne suffit pas de soumettre le formulaire, il faut aussi le positionner le champ (du nom donné à l'attribut <action... parametre=???.../> dans le fichier struts-config.xml) à "executeActionPAF".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... onchange="document.forms['CreationAForm'].parametre.value=executeActionPAF;document.forms['CreationAForm'].submit();" ...
    Un truc comme ça...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ajax est intéressant pour modifier une partie de la page, pas pour changer toute une page...
    Qui plus est, si il faut enregistrer la valeur des paramètres avant de restituer une page avec un autre format, bonjour le traitement ajax

    Je reste persuadé que la soumission du formulaire reste la meilleurs méthode.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    n regardant un peu le code de ton action, je suppose que le contrôleur étend DispatchAction ou LookupDispatchAction (vu le nom de la méthode).
    Donc, dans la page, il ne suffit pas de soumettre le formulaire, il faut aussi le positionner le champ (du nom donné à l'attribut <action... parametre=???.../> dans le fichier struts-config.xml) à "executeActionPAF".
    Code :

    ... onchange="document.forms['CreationAForm'].parametre.value=executeActionPAF;d

    euhhh nan ma classe hérite d'un classe s'appelant ActionPAF qui hérite d'elle même de la classe Action de Struts....
    euhhh jsuis débutant en Struts ca fait une semaine que j'en fais... mais là j'ai pas nécessairement besoin que ma classe hérite de LookupDispatchAction?!
    en tout cas j'ai tjs pas réussi a faire mon onChange et je crois qu'ils sont pas très chaud pr que j'utilise AJAX !!! j'ai toujours ce gentil message " cet objet ne gère pas cette propriété ou cette méthode" pfiouuuuu
    m'enfin merci bcp pr vos réponses c bien sympa !!!

  8. #8
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu faire un test.

    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    onchange="document.forms['CreationAForm'].submit()"
     
    par
     
    onchange="alert('ok');document.forms[0].submit();"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    onchange="alert('ok');document.forms[0].submit();"
    bah écoute ca ca marche enfin j'ai bien le OK qui s'affiche mais derrière bam erreur javascript en bas a gauche :
    "Cet objet ne gère pas cette propriété ou cette méthode"....

    merki

  10. #10
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    ??? Alors là, c'est surprenant !
    Tu n'aurais pas un objet (javascript) nommé forms quand même ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    ah nan nan pas d'objet javascript s'appelant forms
    voila le code de 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
    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
    [...]
    <jsp:include page="menu.jsp"/>
    </div>
     
    <script>cache();montreetital('creation','CA');</script>
     
    <div id="corpspage" >
    	<div align="center">
     
    	<h3>Creation Application</h3>
    	<html:form action="creationA.do" method="POST">
    	<table>
    		<tr>
    		<td>Type d Application</td>
    		<td><html:select property="typeApplicationChoisi" value="" onchange="alert('ok');document.forms[0].submit();">
    		<logic:iterate id="typeA" name="CreationAForm" property="typeApplication" indexId="identifiant">
    		<html:option value='<%="typeApplication["+identifiant+"]"%>'><bean:write name="CreationAForm" property='<%="typeApplication["+identifiant+"]" %>'/></html:option>
    		</logic:iterate>
    		</html:select></td>
    		</tr>
    	</table>
    	<br>
    	<BR>
    	<%
        	GregorianCalendar calendar = new java.util.GregorianCalendar();
        	int moisInt = calendar.get(Calendar.MONTH) + 1;
        	String mois;
        	//Test afin d'avoir le mois sous forme 0x 
        	if (moisInt < 9) {
        		mois = "0" + moisInt;
        	} else {
        		mois = "" + moisInt;
        	}
        %>
        Date d'effet : <html:text size="2" value='<%=""+(calendar.get(Calendar.DAY_OF_MONTH)+1)+""%>' property="jour" />/<html:text size="2" value='<%=mois%>' property="mois" />/<html:text size="4" value='<%=""+calendar.get(Calendar.YEAR)+""%>' property="annee" /><br>
    	<html:submit property="submit" value="Valider"/>
    	<html:submit property="submit" value="Annuler" onclick="javascript:changerTypeAction('Annuler')"/>
    	</html:form>
    </div>
    </div>
    </body>
    </html:html>
    y a rien a spécifier dans les fichiers de Struts jsais pas .... parce que ze comprends pas pkoi ca marche pas ...
    en tout cas merki pr tes réponses

  12. #12
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu n'as pas non plus d'objet "document" ?

    Je ne sais plus quoi te dire, il passe bien dans l'évènement onchange et il ne sait pas interpréter document.forms[0].submit() alors que ça passe partout, c'est !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    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
    Dans ton ActionForm CreationAForm, tu as bien getter et setter sur chacun des éléments de ton formulaire ?
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    pas d'objet document et j'ai bien tout mes getters and setters générés par Eclipsme
    bouh !!!! struts jvous jure !!!!

    merki

  15. #15
    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
    Et si tu codes ton html:select comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="typeApplicationChoisi" onchange="alert('ok');document.CreationAForm.submit();">
       <html:optionsCollection property="typeApplication" value="identifiant" label="identifiant"/>
    </html:select>
    Modératrice Java - Struts, Servlets/JSP, ...

  16. #16
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le code généré à l'exécution ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    Pour le codage avec :
    <html:select property="typeApplicationChoisi" onchange="alert('ok');document.CreationAForm.submit();">
    <html:optionsCollection property="typeApplication" value="identifiant" label="identifiant"/>
    </html:select>
    No getter method available for property identifiant for bean under name SGP...alors là jsais pas car je connais pas du tout cette balise <html:optionsCollction>...

    le code source de la page ? ca donne ca :
    <div id="corpspage" >
    <div align="center">

    <h3>Creation Application</h3>
    <form name="CreationAForm" method="POST" action="/PAF/creationA.do">
    <table>
    <tr>
    <td>Type d'Application</td>
    <td><select name="typeApplicationChoisi" onchange="alert('ok');document.forms[0].submit();"><option value="typeApplication[0]">SGP</option>

    <option value="typeApplication[1]">EXT</option></select></td>
    </tr>

    </table>
    <br>
    <BR>

    Date d'effet : <input type="text" name="jour" size="2" value="28">/<input type="text" name="mois" size="2" value="04">/<input type="text" name="annee" size="4" value="2007"><br>
    <input type="submit" name="submit" value="Valider">
    <input type="submit" name="submit" value="Annuler" onclick="javascript:changerTypeAction('Annuler')">
    </form>
    </div>
    voilou....

  18. #18
    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
    Désolée, je n'avais pas bien regardé ton code.

    typeApplication est un tableau de String ?

    Si c'est bien le cas, il faut coder le html:select comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="typeApplicationChoisi" onchange="alert('ok');document.CreationAForm.submit();">
       <html:options property="typeApplication"/> 
    </html:select>
    Modératrice Java - Struts, Servlets/JSP, ...

  19. #19
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Disons que j'aurais aimé voir la totalité de la page générée, là, ce n'est qu'un fragment...
    Au niveau de la balise <body>, tu as défini un onunload ou appels-tu un script en quittant la page ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 49
    Points
    49
    Par défaut
    alors voilou la totalité de la page c un peu long :
    <html>
    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" href="../css/stylePAF.css" type="text/css" />
    <title>PAF - Création Application</title>
    <!-- CODE JAVASCRIPT GERANT LE MENU -->
    <script language="javascript" src="../scripts/fonctionMenu.js"></script>

    </head>

    <body>
    <div id="bandeauhaut">
    <table>
    <tr>
    <td width="1%"><img hspace=1 src="../images/lanceur_lg_cnp.gif"
    vspace=1></td>
    <td width="99%" align="center">
    <h2 class="bandeauhaut">PAF - Paramètrage d'Accès aux Fonctions</h2>
    </td>
    </tr>
    <tr>
    <td colspan="2" class="bandeaubleu" width="100%">&nbsp;</td>
    </tr>
    </table>
    </div>

    <div id="menug">
    <dl id="menu">
    <dt id="ACC"><a href="http://127.0.0.1:8080/PAF/jsp/accueil.jsp">-- Accueil --</a></dt>
    <dt onclick="javascript:montre('creation');" name="Menu 2">--
    Créer --</dt>
    <dd id="creation">
    <ul>
    <li id="CTA"><a
    href="http://127.0.0.1:8080/PAF/jsp/creationTypeApplication.jsp">Type
    Application</a></li>
    <li id="CA"><a href="http://127.0.0.1:8080/PAF/jsp/creationApplication.jsp">Application</a></li>
    <li id="COE"><a href="http://127.0.0.1:8080/PAF/jsp/creationOE.jsp">Opération Elémentaire</a></li>
    <li id="CP"><a href="http://127.0.0.1:8080/PAF/jsp/creationProduit.jsp">Produit</a></li>
    <li id="CM"><a href="http://127.0.0.1:8080/PAF/jsp/creationMenu.jsp">Menu</a></li>
    <li id="CR"><a href="#">Rapprochement</a></li>
    </ul>
    </dd>

    <dt onclick="javascript:montre('modification');">-- Modifier --</dt>
    <dd id="modification">
    <ul>
    <li id="MTA"><a href="#"> Type Application</a></li>
    <li id="MA"><a href="#">Application</a></li>
    <li id="MOE"><a href="#">Opération Elémentaire</a></li>
    <li id="MP"><a href="#">Produit</a></li>
    <li id="MM"><a href="#">Menu</a></li>
    <li id="MTA"><a href="#">Rapprochement</a></li>
    </ul>
    </dd>

    <dt onclick="javascript:montre('suppression');">-- Supprimer --</dt>
    <dd id="suppression">
    <ul>
    <li><a href="#">Type Application</a></li>
    <li><a href="#">Application</a></li>
    <li><a href="#">Opération Elémentaire</a></li>
    <li><a href="#">Produit</a></li>
    <li><a href="#">Menu</a></li>
    </ul>
    </dd>
    <dt onclick="javascript:montre('consultation');">-- Consulter --</dt>
    <dd id="consultation">
    <ul>
    <li><a href="#">Type Application</a></li>
    <li><a href="#">Application</a></li>
    <li><a href="#">Opération Elémentaire</a></li>
    <li><a href="#">Produit</a></li>
    <li><a href="#">Menu</a></li>
    <li><a href="#">Rapprochement</a></li>
    </ul>
    </dd>


    </dl>

    </div>

    <script>cache();montreetital('creation','CA');</script>

    <div id="corpspage" >
    <div align="center">

    <h3>Creation Application</h3>
    <form name="CreationAForm" method="POST" action="/PAF/creationA.do">
    <table>
    <tr>
    <td>Type d'Application</td>
    <td><<select name="typeApplicationChoisi" onchange="alert('ok');document.CreationAForm.submit();"><option value="SGP">SGP</option>
    <option value="EXT">EXT</option></select></td>
    </tr>

    </table>
    <br>
    <BR>

    Date d'effet : <input type="text" name="jour" size="2" value="28">/<input type="text" name="mois" size="2" value="04">/<input type="text" name="annee" size="4" value="2007"><br>
    <input type="submit" name="submit" value="Valider">
    <input type="submit" name="submit" value="Annuler" onclick="javascript:changerTypeAction('Annuler')">
    </form>
    </div>
    </div>
    </body>
    </html>
    et pour le
    <html:options property="typeApplication"/>
    ca fait pareil qu'avant j'ai bien le OK mais après toujours cette erreur :s

    merciiiii !!!

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

Discussions similaires

  1. [AJAX] OnChange sur balise HTML <select> ?
    Par [ZiP] dans le forum jQuery
    Réponses: 3
    Dernier message: 22/08/2012, 22h20
  2. html select onchange
    Par khaoula_14_05 dans le forum Struts 1
    Réponses: 6
    Dernier message: 24/10/2008, 14h51
  3. probleme de html:select onchange
    Par solfegepro dans le forum Struts 1
    Réponses: 20
    Dernier message: 08/08/2007, 13h44
  4. [ STRUTS ] <html:select onchange=...>
    Par Houbbba dans le forum Struts 1
    Réponses: 6
    Dernier message: 24/04/2006, 13h54

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