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 :

pb checked avec <html:checkbox>


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut pb checked avec <html:checkbox>
    Bonjour,

    J'ai un souci pour réinitialiser mes radio et checkbox ds un formulaire

    Voila mon formulaire 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
     
    <html:form action="/commRestoInsert2Action">
    			<td>
     
    			<html:hidden property="codCpt" value="${cRIF.codCpt}"></html:hidden>
    			<html:hidden property="desCpt" value="${cRIF.desCpt}"></html:hidden>
    			<html:hidden property="codUsa" value="${cRIF.codUsa}"></html:hidden>
     
     
    			<html:radio property="typePrestResto" value="1">Repas Supplémentaire</html:radio> 
    			<br>
    			<br>
     
     
    			<html:radio property="typePrestResto" value="2">Inscription Mensuel</html:radio> 
    			<br>Qte:<html:text property="qtePrest" size="5" value=""></html:text>
     
     
    			<br>
    			<br>
     
    			<html:radio property="typePrestResto" value="3">Inscription Annuel</html:radio>
    			<br>Choix des jours: 	Lu<html:checkbox property="lundi" value="true"></html:checkbox>&nbsp;
    									Ma<html:checkbox property="mardi" value="true"></html:checkbox>&nbsp;
    									Je<html:checkbox property="jeudi" value="true"></html:checkbox>&nbsp;
    									Ve<html:checkbox property="vendredi" value="true"></html:checkbox>&nbsp;
     
    			<br>
    			<br>
     
    			<div align="center"><html:submit value="Continuer - Etape 2"/>
    				</div>
    			</html:form>
    quand je lance une première fois pas de souci, mon bouton radio par default est le premier et mes checkbox sont vide.
    Si je valide ma page et que je refait appel à cette page, les radio et checkbox ont conservés mon dernier enregistrement en spécifiant automatiquement checked="checked" sur mon code source.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type="radio" name="typePrestResto" value="3" checked="checked">Inscription Annuel
    			<br>Choix des jours: 	Lu<input type="checkbox" name="lundi" value="true" checked="checked">&nbsp;
    									Ma<input type="checkbox" name="mardi" value="true" checked="checked">&nbsp;
    									Je<input type="checkbox" name="jeudi" value="true">&nbsp;
    									Ve<input type="checkbox" name="vendredi" value="true">&nbsp;
    Je voudrais réinitialiser mes boutons et cases.
    Alors j'ai vu 2,3 discussions, j'ai essayé la methode reset dans l'ActionForm mais rien n'y fait !!!
    Quelqu'un aurait une solution .?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Est ce que tu saurai montrer ta classe ActionForm?

  3. #3
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    Salut

    Ton problème me fait penser au mien.

  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
    Voila une partie de mon ActionForm:
    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
     
     
    public class CommRestoInsertForm extends ValidatorForm {
     
    	private long codCpt;
    	private String desCpt;
    	private long codUsa;
    	private long codPrest;
    	private int typePrestResto;
    	private boolean lundi;
    	private boolean mardi;
    	private boolean jeudi;
    	private boolean vendredi;
    	private int qtePrest;
    	private String dateRepas;
     
     
    	public CommRestoInsertForm() {
     
    	}
     
    	public void reset(ActionMapping mapping, HttpServletRequest request)
    	{
    	    this.typePrestResto=1 ;
     
    	}
     
     
    	/**
             * @return the codCpt
             */
    	public long getCodCpt() {
    		return codCpt;
    	}
     
     
    	/**
             * @param codCpt the codCpt to set
             */
    	public void setCodCpt(long codCpt) {
    		this.codCpt = codCpt;
    	} ..........
    .......
    J'initialise à 1 mon champs "typePrestResto" qui correspond au bouton radio. Mais rien ne change !!??
    J'ai essayé aussi avec mon champs codPrest qui correspond à mes checkbox mais rien ne change non plus ???

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    ben en fait j'utilise un seul champs "typePrestResto" (ds CODE 1er mess) pour mes trois boutons radios donc avec true je ne pourrais plus distinguer lequel est coché !, mais je vais quand même essayer true avec 3 champs distinct....

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Bah moi je penserais à des propriety différents, tu mets value="true"
    et pour le reset j'ai un truc comme ça
    this.typePrestResto=true ;

    Enfin je pense...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    je ferai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private boolean codPrest;
    private String typePrestResto;
    ...
    public void reset(ActionMapping mapping, HttpServletRequest request)
    	{
    	    this.typePrestResto="1" ;
    	    this.codPrest=false;
    	}
    et dans 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
     
    <html:form action="/commRestoInsert2Action">
      <td>
     
      <html:hidden property="codCpt" value="${cRIF.codCpt}"></html:hidden>
      <html:hidden property="desCpt" value="${cRIF.desCpt}"></html:hidden>
      <html:hidden property="codUsa" value="${cRIF.codUsa}"></html:hidden>
     
      <html:radio property="typePrestResto" value="1">Repas Supplémentaire</html:radio> 
      <br>
      <br>
     
      <html:radio property="typePrestResto" value="2">Inscription Mensuel</html:radio> 
        <br>Qte:<html:text property="qtePrest" size="5" value=""></html:text>
        <br>
        <br>
      <html:radio property="typePrestResto" value="3">Inscription Annuel</html:radio>
      <br>Choix des jours: 	
    Lu<html:checkbox property="lundi"></html:checkbox>&nbsp;
     
    Ma<html:checkbox property="mardi" ></html:checkbox>&nbsp;
     
    Je<html:checkbox property="jeudi"></html:checkbox>&nbsp;
     
    Ve<html:checkbox property="vendredi"></html:checkbox>&nbsp;
     
      <br>
      <br>
      <div align="center"><html:submit value="Continuer - Etape 2"/>
      </div>
    </html:form>

  8. #8
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    J'ai essayer ta façon "Delph1983" typePrestResto en String mais tjrs la même chose !
    Pas de solution, doit bien y avoir quelque chose à faire pour réinitialiser mes property (typePrestResto, lundi, mardi, jeudi, vendredi) ?
    (Dailleurs désoler pour le post d'avant pour les checkbox ct pas codPrest mais lundi,mardi,jeudi,vendredi...)
    Donc pour l'instant je suis bloqué !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    est ce que as vérifié si tu passe par le reset?
    et dans ton struts-config ton scope c'est quoi?

  10. #10
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    J'ai vérifier mon reset se lance quand je recharge ma page(popup) mais quand je la ferme et que je refait la mm action en cliquant sr un lien, il conserve mes anciennes données et n'effectue pas mon reset !! je ne comprend pas !

    Qu'est ce que le scope, mes actions mapping:

    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
    <action
        		path="/commRestoInsert1Action"
        		type="viacham.action.CommRestoInsert1Action"
    	    	input="/pages/commande.jsp">
    	    	<forward name="success" path="/pages/commRestoInsert1Form.jsp"/>  
        		<forward name="failure" path="/pages/commande.jsp"/>     
        	</action>
     
        	<action
        		name="commRestoInsertForm"
        		path="/commRestoInsert2Action"
        		type="viacham.action.CommRestoInsert2Action"
    	    	input="/pages/commRestoInsert1Form.jsp">
    	    	<forward name="occasionnel" path="/pages/commRestoInsertOccaForm.jsp"/>
    	    	<forward name="mensuel" path="/pages/commRestoInsertCalendarForm.jsp"/>
    	    	<forward name="annuel" path="/pages/commRestoInsertCalendarForm.jsp"/>  
        		<forward name="failure" path="/pages/commRestoInsert1Form.jsp"/>     
        	</action>
    Pour comprendre:
    Au départ j'ai une page avec une listes de commandes et des liens "Ajout" sur chaque ligne qui effectue:
    onclick="window.open('commRestoInsert1Action.do?codCpt......

    cette action 'commRestoInsert1Action' charge des paramètres (codCpt,codUsa....) ds mon Form.
    Action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CommRestoInsertForm cRIF = new CommRestoInsertForm();
     
    		cRIF.setCodCpt(Long.parseLong(request.getParameter("codCpt")));
    		cRIF.setDesCpt(request.getParameter("desCpt"));
    		cRIF.setCodUsa(Long.parseLong(request.getParameter("codUsa")));
     
    		request.setAttribute("cRIF", cRIF);
     
    return mapping.findForward("success");
    et m'affiche ma popup 'commRestoInsert1Form.jsp' avec mon formulaire:
    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
     
    <html:form action="/commRestoInsert2Action">
    			<td>
     
    			<html:hidden property="codCpt" value="${cRIF.codCpt}"></html:hidden>
    			<html:hidden property="desCpt" value="${cRIF.desCpt}"></html:hidden>
    			<html:hidden property="codUsa" value="${cRIF.codUsa}"></html:hidden>
     
     
    			<html:radio property="typePrestResto" value="1">Repas Supplémentaire</html:radio> 
    			<br>
    			<br>
     
    			<html:radio property="typePrestResto" value="2">Inscription Mensuel</html:radio> 
    			<br>Qte:<html:text property="qtePrest" size="5" value=""></html:text>
     
     
    			<br>
    			<br>
     
    			<html:radio property="typePrestResto" value="3">Inscription Annuel</html:radio>
    			<br>Choix des jours: 	Lu<html:checkbox property="lundi" value="true"></html:checkbox>&nbsp;
    									Ma<html:checkbox property="mardi" value="true"></html:checkbox>&nbsp;
    									Je<html:checkbox property="jeudi" value="true"></html:checkbox>&nbsp;
    									Ve<html:checkbox property="vendredi" value="true"></html:checkbox>&nbsp;
     
    			<br>
    			<br>
     
    			<div align="center"><html:submit value="Continuer - Etape 2"/>
    				</div>
    			</html:form>
    mon formulaire m'envoie à l'action 'commRestoInsert2Action'
    qui fait une vérification de la saisie des champs et m'affiche soit un nouveau formulaire (la suite) soit revient sur le formulaire existant
    'commRestoInsert1Form.jsp' (A ce moment la mon reset est bien lancé!)

    mais lorsque je ferme completement ma popup ou que je termine mon Ajout et que je reclick sur un autre lien 'Ajout', il ne me lance pas mon reset et me coche mes anciennes valeurs !) A n'y rien comprendre !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    en fait struts crée une nouvelle instance du form bean si il n'a pas été trouvé dans le scope ou si le scope est request.
    essaie un peu d'ajouter un scope="request" dans tes mappings
    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
     
    <action
      path="/commRestoInsert1Action"
      type="viacham.action.CommRestoInsert1Action"
      scope="request"
      input="/pages/commande.jsp">
      <forward name="success" path="/pages/commRestoInsert1Form.jsp"/>  
      <forward name="failure" path="/pages/commande.jsp"/>     
    </action>
     
    <action
      name="commRestoInsertForm"
      path="/commRestoInsert2Action"
      type="viacham.action.CommRestoInsert2Action"
      scope="request"
      input="/pages/commRestoInsert1Form.jsp">
      <forward name="occasionnel" path="/pages/commRestoInsertOccaForm.jsp"/>
      <forward name="mensuel" path="/pages/commRestoInsertCalendarForm.jsp"/>
      <forward name="annuel" path="/pages/commRestoInsertCalendarForm.jsp"/>  
      <forward name="failure" path="/pages/commRestoInsert1Form.jsp"/>     
    </action>

  12. #12
    Membre averti
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    Un grand MERCI !!!

    C'était bien ca ! Je pensais que le reset était automatiquement appelé mais il me manquait le scope dans mes Action-mappings, Je ne savais pas!

    Encore merci !

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

Discussions similaires

  1. [struts][debutant]input checkbox vs html checkbox
    Par venegan dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/08/2005, 16h23
  2. html:checkbox gache tout
    Par cbi1net dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 12/08/2005, 11h02
  3. Réponses: 2
    Dernier message: 18/07/2005, 11h58
  4. [Struts] Créer un id avec les <html:text ..>
    Par jak0 dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/05/2005, 14h19
  5. Afficher du XML avec du HTML
    Par BipBip2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 05/04/2005, 10h45

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