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 :

Chargement valeur d'un <html:radio>


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut Chargement valeur d'un <html:radio>
    Bonjour,
    Voila j'ai une JSP avec trois radio comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_ALPHA%>" onchange="setChange()">
          <bean:message key="armoire.reappro.calendrier.tri.form"/>
    </html:radio>
    <html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_FORM%>" onchange="setChange()">
          <bean:message key="armoire.reappro.calendrier.tri.form"/>
    </html:radio>
    <html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_STOCK%>" onchange="setChange()">
          <bean:message key="armoire.reappro.calendrier.tri.form"/>
    </html:radio>
    La property "order" de mon mon form est initialisé dans struts-config de la manire suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form-bean name="calendrierReapproForm"
    type="org.apache.struts.action.DynaActionForm">
          <form-property name="order" type="java.lang.String" />	    
    </form-bean>
    Et lors de l'action LOAD, je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DynaActionForm theForm = (DynaActionForm)form;
    theForm.set("order", "maValue");
    maValue est bel et bien la bonne valeur que j'attends, mais le bouton radio qui devrait être coché ne l'est pas!!
    Quelqu'un a une idée??

    Ma JSP sais bien qu'elle travaille avec "calendrierReapproForm", lors de l'action SAVE tout fonctionne.

    Merci.

  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
    Tu es certain que maValue correspond bien à une des valeurs renvoyées par les scriptlets codées dans l'attribut value des tags html:radio ?
    L'as-tu vérifié en regardant le source généré ?

  3. #3
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Oui, même an faisant un sysout() de la valeur juste avant le load, elle est bien définie avec la bonne valeur.

  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
    Le sysout de quelle valeur ?

    Moi, je parlais du code html généré de la page jsp.
    Vois-tu bien apparaître maValue dans le code html généré ?

  5. #5
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Effectivement maValue est vide dans le code source généré. Pourtant comme je disais je fais un sysout(maValue) juste avant est elle est bien définie. Je dois faire quoi?

  6. #6
    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
    Euh, là, j'ai dû mal à te suivre.

    Qu'entends-tu par "maValue est vide dans le code source généré" ?

    Ce qu'il faut vérifier, c'est qu'une des scriptlets que tu as codé dans l'attribut value des tags html:radio renvoie bien maValue.

    Autrement dit, quand tu regardes le code généré, as-tu dans un des input de type radio ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="order" value="maValue">
    à priori non parce que sinon, le bouton radio correspondant serait coché.

    ORDER_DOTATION_ALPHA, ORDER_DOTATION_FORM et ORDER_DOTATION_STOCK sont-elles des constantes ?
    Y-en-a-t'il bien une qui a pour valeur "maValue" ?

  7. #7
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Donc, dans le HTML générée, maValue= ""!! J'ai fais un <bean:define mavalue> avec la valeur , donc elle est bien dans le HTML mais rien ne change. Et pour revenir à ce que je disais avant, juste avant le return mapping.findforward(), je fais un sysout de maValue, de mon form aussi et le résultat est la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    15:01:41,870 INFO  [STDOUT] DynaActionForm[dynaClass=calendrierReapproForm, order=alpha]
    15:01:41,870 INFO  [STDOUT] ORDER LOAD  alpha
    On voit bien que order=alpha (order correspond à maValue) et dans le HTML elle est égale à vide. J'ai également testé session.setAttribute("calendrierReapproForm", form) mais ca ne change rien non plus.

  8. #8
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Euh... oui! Chaque radio à bien sa value. ORDER_DOTATION_ALPHA, FORM et STOCK sont des constantes, donc chaque radio à tout le temps une value. (alpha, form, stock). Ce que je veux dire si tu regardes mon dernier post, la property order de mon Form égale "alpha". Le bouton radio qui à pour property "order" et pour value "alpha" devrait automatiquement être coché ou bien je me trompe?

  9. #9
    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 le bouton radio que tu souhaites voir pré-coché est celui qui a pour valeur alpha, tu dois donc faire ceci dans l'Action qui s'exécute avant l'affichage du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DynaActionForm theForm = (DynaActionForm)form;
    theForm.set("order", "alpha");
    Ainsi, le bouton radio, soit la propriété order, qui a pour value "alpha" devrait automatiquement être coché.

    Tu devrais donc avoir dans le code html généré ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="order" value="alpha" checked="checked">
    Les tags html:radio doivent être dans un tag html:form et l'Action correspondante doit être liée au form-bean calendrierReapproForm.

  10. #10
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Si tu regardes bien mon premier post, c'est exactement ce que je fais (theForm.set("order", "alpha")), et la order affiche bien "alpha" lors de mon sysout() mais est à vide dans ma page html ou je l'ai mis dans un champ hidden pour vérifier son existence.!! Retour à la case départ, maintenant on se comprend lol!

  11. #11
    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
    Peux-tu montrer le code complet de la jsp, le code html généré et le mapping de l'Action ?

  12. #12
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Je te donne juste les bouts nécessaires parceque la JSP est HUGE comme on dit!Donc 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
    <html:form styleId="dotationForm" action="/calendrierReapproSave">
    			<html:hidden property="tab" styleId="tab" value="tab1"/>
    			<html:hidden property="order"/>								
    			<div class="rubrique-body">
    				<div class="row">
    					<div class="label" style="width:300px"><bean:message key="armoire.reappro.calendrier.tri" /></div>					
    						<div class="element" style="width:100px">
    							<html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_ALPHA%>">
    								<bean:message key="armoire.reappro.calendrier.tri.alpha"/>
    							</html:radio>
    						</div>
    						<div class="element" style="width:100px">
    							<html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_FORM%>">
    								<bean:message key="armoire.reappro.calendrier.tri.form"/>
    							</html:radio>
    						</div>
    						<div class="element" style="width:150px">
    							<html:radio property="order" value="<%=ArmoireBean.ORDER_DOTATION_STOCKAREA%>">
    								<bean:message key="armoire.reappro.calendrier.tri.stockArea"/>
    							</html:radio>
    						</div>
    					<div class="label">&nbsp;</div>												
    				</div>
    Ensuite le même bout de code version HTML:
    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
    <form id="dotationForm" action="/weboffice/calendrierReapproSave.do" method="post" name="calendrierReapproForm">
    <input id="tab" type="hidden" value="tab1" name="tab"/>
    <input type="hidden" value="" name="order"/>
    <div class="rubrique-body">
    <div class="row">
    <div class="label" style="width: 300px;">Ordre des spécialités dans le bon de préparation</div>
    <div class="element" style="width: 100px;">
    <input type="radio" value="alpha" name="order"/>
    Alphabétique
    </div>
    <div class="element" style="width: 100px;">
    <input type="radio" value="form" name="order"/>
    Forme
    </div>
    <div class="element" style="width: 150px;">
    <input type="radio" value="stock" name="order"/>
    Zone de stockage
    </div>
    <div class="label"> </div>
    </div>
    et le mapping de l'action :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form-bean name="calendrierReapproForm"
    		    type="org.apache.struts.action.DynaActionForm">
    		    <form-property name="tab" type="java.lang.String" />	
    		    <form-property name="order" type="java.lang.String" />		   
    		</form-bean>
                <action path="/calendrierReapproLoad" 	type="com.siemens.med.hs.weboffice.struts.action.CalendrierReapproLoadAction"
    			name="calendrierReapproForm"
    			scope="request"
    			input="weboffice.parametres.calendrier">
    			<forward name="success" path="weboffice.parametres.calendrierReappro"/>
    		</action>

  13. #13
    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
    Il manque le mapping de l'Action de path /calendrierReapproSave.

    Sinon, mets le scope du form-bean calendrierReapproForm à session dans le mapping des Actions de path /calendrierReapproLoad et /calendrierReapproSave.

  14. #14
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Cooooooolllll!!!!!!!!!!! Merci merci!! j'ai mis le scope en session et ca passe. Je fais le tour avec mes tests unitaires pour vérifier que tout est OK et je donne la réponse résolu ou pas demain. Merci encore!!

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/03/2007, 11h33
  2. Réponses: 12
    Dernier message: 12/02/2007, 12h56
  3. pb pour récupérer la valeur d'un html:radio
    Par nathalie2266 dans le forum Struts 1
    Réponses: 9
    Dernier message: 12/01/2007, 10h42
  4. [struts] <html:radio> et valeur par défaut
    Par nikalkal dans le forum Struts 1
    Réponses: 3
    Dernier message: 27/02/2006, 14h41
  5. [VB6] recuperer des valeurs ds un tableau html avec vb!!
    Par leo13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2004, 13h02

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