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 :

[DEBUTANT][STRUTS] Initialiser html:select


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut [DEBUTANT][STRUTS] Initialiser html:select
    hello,

    J'ai besoin d'un peu d'aide, je débute avec struts .
    j'essaye d'initialiser une combo box avec le contenu d'une base de donnée. Comme premier test j'ai associé une actionForm à ma page, et dans la fonction reset j'ai voulu initialiser des valeurs dans le tableau associé à mon bouton select mais quand je charge la page la combo box reste vide.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // Reset values are provided as samples only. Change as appropriate.
     
    	code = null;
    	code = new String[10];
    	code[0] = "Yop";
    	code[1] = "Yip"; 
    	System.out.println(code[0]);
    	System.out.println(code[1]);
    }
    faut t'il faire quelque chose de spécial pour que cela marche ?
    Mon ide affiche yop et yip dans la console, donc l'actionForm est bien linké à la form.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Tu peux montrer le code du select?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    oui bien sur , le voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html:form action="/TransApp" method ="post">
     
    	<html:select property="code" size="1"></html:select>
    	<html:submit>Go</html:submit>
    </html:form>

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par mlequim
    oui bien sur , le voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html:form action="/TransApp" method ="post">
     
    	<html:select property="code" size="1"></html:select>
    	<html:submit>Go</html:submit>
    </html:form>
    et le combo box ??

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    le tag select crée une combo box non ? si j'ai confondu les noms sorry . En tout cas le tag select à l'air d'offrir ce que je veux, une boite qui se déroule, je suis pas trop sur de son nom lol .

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par mlequim
    le tag select crée une combo box non ? si j'ai confondu les noms sorry . En tout cas le tag select à l'air d'offrir ce que je veux, une boite qui se déroule, je suis pas trop sur de son nom lol .
    voilà un exemple de l'utilisation du select avec une liste de choix multiple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:select property="categorie">
      <html:option  value="Yop">Yop</html:option> 
      <html:option value="Yip">Yip</html:option>
    </html:select>
    pour repondre à ton besoin..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="categorie">
      <html:options  collection="coder"/>
    </html:select>
    Normalement la valeur de des options sera initialisé avec les valeurs initiales de ta variables..

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    j'ai pas tout compris en fait. quelle est la variable qui sera utilisée pour remplir mes valeurs par défaut ? categorie ou code ? et quelle sera alors la variable qui retournera les valeurs lors d'un request.getparameter ? categorie ?

    j'ai modifié mon code comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html:form action="/TransApp" method ="post">
    	<html:select property="categorie" size="1">
    		<html:options collection="code"/>
    	</html:select>
    	<html:submit>Go</html:submit>
    </html:form>
    et voici mon action form :

    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
    public class FormTest extends ActionForm {
     
    	private String[] categorie = null;
    	private String[] code = null;
     
    	/**
             * Get categorie
             * @return String[]
             */
    	public String[] getCategorie() {
    		return categorie;
    	}
     
    	public String[] getCode() {
    			return code;
    		}
     
     
    	/**
             * Set categorie
             * @param <code>String[]</code>
             */
    	public void setCategorie(String[] c) {
    		this.categorie = c;
    	}
     
    	public void setCode(String[] c) {
    			this.code = c;
    		}	
     
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
     
    		// Reset values are provided as samples only. Change as appropriate.
     
    		categorie = null;
    		categorie = new String[10];
    		categorie[0] = "yip";
    		categorie[1] = "yop";
     
    		code = new String[10];
    		code[0]= "yip";
    		code[1]= "yop";
     
     
     
    	}
     
    	public ActionErrors validate(
    		ActionMapping mapping,
    		HttpServletRequest request) {
     
    		ActionErrors errors = new ActionErrors();
    		// Validate the fields in your form, adding
    		// adding each error to this.errors as found, e.g.
     
    		// if ((field == null) || (field.length() == 0)) {
    		//   errors.add("field", new org.apache.struts.action.ActionError("error.field.required"));
    		// }
    		return errors;
     
    	}
    }
    j'obtient l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServletException in:bTransApp.jsp] Cannot find bean under name code'
    je crois que j'ai pas du comprendre un truc ou l'autre

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    la variable categorie est une chaine de caractères . type String et pas un tableau, car, l'utilisateur doit selectionner un element de la liste. à moins que tu veuille utiliser une liste multiple, là faut revoir le code de options..mais vaut mieux faire les choses pas à pas.

    quand l'utilisateur cliquera sur le boutton submit, struts fait un set sur la variable categorie et renseigne savaleur par la la valeur de l'option choisi (la variable code).
    J'espère que c'est plus clair pour toi!!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    yep ! c'est clair maintenant ! par contre j'ai mis code en string[] et categorie en string, puis j'ai initialisé categorie dans reset() et j'obtient toujours l'erreur suivante :

    ServletException in:bTransApp.jsp] Cannot find bean under name code'
    voici le code de ma classe 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class FormTest extends ActionForm {
     
    	private String categorie = null;
    	private String[] code = null;
     
    	/**
             * Get categorie
             * @return String[]
             */
    	public String getCategorie() {
    		return categorie;
    	}
     
    	public String[] getCode() {
    			return code;
    		}
     
     
    	/**
             * Set categorie
             * @param <code>String[]</code>
             */
    	public void setCategorie(String c) {
    		this.categorie = c;
    	}
     
    	public void setCode(String[] c) {
    			this.code = c;
    		}	
     
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
     
    		// Reset values are provided as samples only. Change as appropriate.
     
    		categorie = null;
     
    		code = null;
    		code = new String[10];
    		code[0] = "yip";
    		code[1] = "yop";		
     
    	}
     
    	public ActionErrors validate(
    		ActionMapping mapping,
    		HttpServletRequest request) {
     
    		ActionErrors errors = new ActionErrors();
    		// Validate the fields in your form, adding
    		// adding each error to this.errors as found, e.g.
     
    		// if ((field == null) || (field.length() == 0)) {
    		//   errors.add("field", new org.apache.struts.action.ActionError("error.field.required"));
    		// }
    		return errors;
     
    	}
    }
    tu as une idée ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    peut être que code doit être une collection plutôt qu'un string array ?

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ouiii ..
    maintenant code doit etre une collection, donc, faut qu'il soit d'un type derivé de Collection, par exemple Vector.
    Ensuite comme ton objet n'est pas dans un scope reconu par le serveur, il faut utiliser options comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:options name="formTest" property="code " />

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    yes ! l'espoir me revient lol !

    merci snipper pour ta patience j'essaye ça de suite

  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
    Citation Envoyé par Sniper37
    ouiii ..
    maintenant code doit etre une collection, donc, faut qu'il soit d'un type derivé de Collection, par exemple Vector.
    Ensuite comme ton objet n'est pas dans un scope reconu par le serveur, il faut utiliser options comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:options name="formTest" property="code " />
    Il vaut mieux utiliser une ArrayList plutôt qu'un Vector car ce dernier est deprecated.

    Quant au problème de scope, il est possible de coder dans la méthode reset(), après l'initialisation de la collection, un request.setAttribute pour mettre la collection dans le scope request, par exemple.
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    ça marche !!!! !! je vous aime !!!!!

    merci à tout les deux !

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

Discussions similaires

  1. [Struts] Struts et html:select
    Par cipotesi dans le forum Struts 1
    Réponses: 10
    Dernier message: 16/02/2006, 16h56
  2. [struts]html:select
    Par steffy_29 dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/09/2005, 15h37
  3. [Debutant][Struts] Syntaxe html:link
    Par Oby dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2005, 12h45
  4. html:select struts
    Par JulienT dans le forum Struts 1
    Réponses: 3
    Dernier message: 14/04/2004, 11h40
  5. [Struts] preselection ds un html:select ???
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 10/02/2004, 11h13

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