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 :

Bouton radio coché par défaut


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut Bouton radio coché par défaut
    Bonsoir,
    j'utilise des boutons radios dans un formulaire. je souhaite que le premier bouton radio soit coché par défaut. voici un bout de mon code

    la page jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html:form action="/afficher" name="candidat" type="test.FormulaireBean">
    <% for (int i=0; i<2 ;i++) { %>
        <tr>
    	<td width="20%">							                   
                <html:radio property="numero"  value='i' />
             </td>
        </tr>
    <%} %>
    </html:form>
    le formulaireBean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class FormulaireBean extends ActionForm {
    	// bouton radio
    	private String numero = null;
     
    	public String getNumero() {
    		return numero;
    	}
     
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
    }
    Merci de votre aide.

  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
    Dans ton cas, il suffit d'initialiser la propriété numero à 0 dans la méthode reset de l'ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
        this.numero="0" ;
    }

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    Je debute en Struts, je n'ai pas bien compris ce que vous m'avez dit.
    Dans mon FormulaireAction, j'ajoute votre methode, le champs numero ne va etre reconnu? et comment je fais appel a cette methode dans ma page jsp?

  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
    La méthode reset doit être codée dans l'ActionForm et non dans l'Action, soit dans ton cas dans FormulaireBean.
    Et tu n'as pas besoin d'y faire appel dans la jsp car elle est automatiquement appelée à l'initialisation du formulaire.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    J'ai testé avec un bouton radio et ca ne marche pas
    j'ai bien ajouté ce code dans mon formulaireBean
    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
     
    public class FormulaireBean extends ActionForm {
     
     
    	// bouton radio
    	private String numero = null;
     
    	public String getNumero() {
    		return numero;
    	}
     
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
     
    	public void reset(ActionMapping mapping, HttpServletRequest request)
    	{
    	    this.numero="0" ;
    	}
     
     
     
    }
    ca ne marche pas. il n y a aucun bouton radio qui est coché

  6. #6
    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 salsero1 Voir le message
    j'utilsie un multibox <html:multibox property="numero">
    je ne sais pas si c'est different
    Pour sûr, le fonctionnement est différent entre un bouton radio et des chechbox.
    Au début de la discussion, tu parlais de bouton radio.

    Enfin, dans le cas des checkbox, dans la méthode reset, il faut d'abord que tu initialises le tableau de String et ensuite, si tu veux que la première soit cochée par défaut, il faut affecter la valeur 0 au premier élément du tableau comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public void reset(ActionMapping mapping, HttpServletRequest request)
    	{
    	    this.numero=new String[20];
    	    this.numero[0]="0" ;
    	}

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    désolé, au fait j'ai les 2 cas. je ne trouve pas la solution. je cherche depuis un petit moment.
    j'ai appliqué ce que vous m'avez dit. et rien. pour les boutons radios et pour les checkbox
    Merci

  8. #8
    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
    montre le code de ta jsp et celui de l'ActionForm et si tu as un message d'erreur, donne-le aussi.

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    je n'ai pas de messages d'erreurs.
    le code la page jsp est assez long, j'ai mis qu'une partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html:form action="/afficher" name="candidatMultiple" type="CandidatMultiple.FormulaireBean">
    		<table border="0" width="100%">
    			<% for (int i=0; i<taille-8;i++) { %>
    				<tr>
    				     <td width="5%">
    	<html:radio property="numero"  value="<%= listeCandidat.get(i).toString() %>" />
    	</td>	
    ....

  10. #10
    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
    Mais le value ne correspond pas à ce que tu as mis au début de la discussion.
    Sincèrement, j'ai du mal à suivre.

    Donc, pour que le bouton radio coché par défaut soit le premier de la liste, il faut que la propriété numero ait pour valeur listeCandidat.get(0).

    Tu aurais donc plutôt intérêt à initialiser la propriété numero avec le premier élément de la liste dans l'Action qui s'exécute juste avant l'affichage du formulaire, soit celle où tu constitues la liste listeCandidat.

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    je suis desolé de te souler mais je ne te suis pas.
    reprenons voici mon code pour le radio bouton:

    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
     
    public class FormulaireBean extends ActionForm {
    	// bouton radio
    	private String numero = null;
     
    	public String getNumero() {
    		return numero;
    	}
     
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
     
    	public void reset(ActionMapping mapping, HttpServletRequest request)
    	{
    	    this.numero="0" ;
    	}
     
    }
    un bout de ma page jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <html:form action="/afficher" name="candidatMultiple" type="CandidatMultiple.FormulaireBean">
    	<table border="0" width="100%">
    		<% for (int i=0; i<taille-8;i++) { %>
    			<tr>
    			      <td width="5%">							 <html:radio property="numero"  value="<%= listeCandidat.get(i).toString() %>" />
     
    													<% }%>
    			      </td>
                             </tr>	
    ... la suite de mon code
    dis moi svp ce qu'il faut que je change
    Merci

  12. #12
    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 pourtant, c'est plutôt toi qu'il est difficile de suivre.
    Au début de la discussion, tu faisais un value="i". Après, ça devient un value="<%= listeCandidat.get(i).toString() %>".
    Ce n'est pas vraiment la même chose.

    Au début de la discussion, j'avais dit qu'il fallait l'initialiser avec la valeur 0 parce que tu faisais un value="i".
    Ce n'est donc plus valable puisque tu fais un value="<%= listeCandidat.get(i).toString() %>".

    Donc, je me répète : pour que le bouton radio coché par défaut soit le premier de la liste, il faut que la propriété numero de ton ActionForm soit initialisée avec la valeur du premier élément de la liste, soit dans ton cas la valeur de listeCandidat.get(0).

    Pour initialiser la propriété numero de ton ActionForm, il y a deux solutions : soit dans la méthode reset de l'ActionForm, soit dans l'Action qui s'exécute avant l'affichage du formulaire (si toutefois il y en a une).

    Peux-tu préciser où tu as mis le code qui permet de constituer la collection listeCandidat ? dans une Action ? dans la jsp ?

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    j'ai importé dans mon lib un projet avec beaucoup de fonctions. je fais appel a ces fonctions dans ma page jsp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <% String nom = (String)request.getAttribute("nom"); %>
    <% LinkedList listeCandidat= new LinkedList(); 
          listeCandidat = formi.searchCandidatByName(nom); 
          int taille = listeCandidat.size();%>
    le nom, je le récupère d'un autre formulaire.

    je récupère la taille et j'ouvre un nouveau formulaire et je fais une boucle for de i=0 jusqu'à "disons" la taille. d'où le nombre important de mes radios boutons.

  14. #14
    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
    Lorsqu'on utilise Struts, je trouve dommage de mettre du code Java dans la jsp.
    Le code que tu viens de poster précédemment devrait donc être dans une Action qui s'exécute avant l'affichage de la jsp.

    Mais bon, il y a quand même une solution pour faire en sorte que le premier bouton radio soit coché par défaut mais personnellement, je ne trouve pas ça très propre.

    En supposant que formulaireBean est le nom du form-bean de type FormulaireBean et que celui-ci est dans le scope request, tu dois pouvoir faire ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%
       FormulaireBean formulaireBean = (FormulaireBean ) request.getAttribute("formulaireBean") ;
       String numeroChecked = (String) listeCandidat.get(0) ;
       formulaireBean.setNumero(numeroChecked) ;
    %>
    Mais il serait beaucoup plus propre de mettre ceci dans la méthode execute d'une Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String nom = (String) request.getAttribute("nom");
    LinkedList listeCandidat= formi.searchCandidatByName(nom); 
    FormulaireBean formulaireBean = (FormulaireBean) form ;
    String numeroChecked = (String) listeCandidat.get(0) ;
    formulaireBean.setNumero(numeroChecked ) ;

Discussions similaires

  1. vérifier que Boutton radio est coché par défaut
    Par Houss24 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 08/06/2015, 10h36
  2. Impossible d'avoir les boutons radio décochés par défaut
    Par souf_87 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 29/07/2011, 11h01
  3. [PEAR][HTML_QuickForm] Bouton radio sélectionné par défaut
    Par JuTs dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/06/2010, 10h10
  4. Réponses: 5
    Dernier message: 14/11/2008, 12h06
  5. Réponses: 9
    Dernier message: 12/01/2005, 17h00

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