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 :

Quelques précisions sur html:options collection


Sujet :

Struts 1 Java

  1. #1
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 1 958
    Points
    1 958
    Par défaut Quelques précisions sur html:options collection
    Bonjour,


    Bon désolé, pour la question qui revient sans arret. Il y a une pletore de sujet qui traite du html:select mais je n'arrive à trouver les reponses à mes questions ...

    Dans mon action, je lis dans une table pour récuperer les commerciaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Gestion_BdD dataBase = new Gestion_BdD("root");
    List<Commercial> com = dataBase.List_Commercial();
    request.setAttribute("commercial", com);
    avec une requete du genre dans dataBase.List_Commercial()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select com_id, nom_com, prenom_com from commerciaux"

    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
    public class AdmClientForm extends ActionForm
    {
    	private String com_id;
    	private String nom_com;
     
    	public AdmClientForm() {
    		this.com_id = null;
    		this.nom_com = null;
    	}
     
    	public String getcom_id() {
    		return this.com_id;
    	}
    	public void setcom_id(String com_id) {
    		this.com_id = com_id;
    	}
     
     
    	public String getnom_com() {
    		return this.nom_com;
    	}
    	public void setnom_com(String nom_com) {
    		this.nom_com = nom_com;
    	}     
    }
    1. Est ce que les propriétés com_id et nom_com doivent correspondre aux champs de la table commerciaux ?
    2. Si ce n'est pas le cas :
      Comment fais t-on pour mapper les champs de la table avec le label et la valeur du combobox ?

    Je me pose cette question car je ne respecte la nomanclature SUN pour le nom des méthodes qui doivent contenir des majuscules pour chaque mots.

    Ma JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="">
    	<html:options collection="commercial" property="com_id" labelProperty="nom_com"/>
    </html:select>
    Est ce que c'est l'équivalent en html de ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="commercialId">
    	<option value="commercialId">commercialName</option>
    </select>
    Quelques question que je me pose à propos des différents parametres :
    • collection="commercial" correspond à la collection que l'on envoie à partir de l'Action grace :
      request.setAttribute("commercial", com);

    • property="commercialId" correspond à une propriété et getter/setter de l'action form rattaché à la page JSP du formulaire

    • labelProperty="commercialName" correspond à une propriété et getter/setter de l'action form rattaché à la page JSP du formulaire


    • select property="commercialId" ? Si c'est comme en HTML pure, cela correspondrait à une propriété et getter/setter mais pas de l'action form rattaché à la page du formulaire courant.
      Il serait rattaché à la page JSP suivante lorsque l'on submit.
      Ce parametre étant utilisant lorsque l'on submit, il n'est pas utilisé lors du chargement de la liste. Je pourrais le définir lorsque je m'occuperais de la page suivante.


    Pour le moment ai je bon ?


    Lorsque j'execute, j'ai le droit à l'erreur :
    org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method available for property com_id for bean under name commercial
    Je ne comprends pas. J'ai bien une methode getteur com_id : getcom_id() pourtant.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="com_id">
    	<html:options collection="commercial" property="com_id" labelProperty="nom_com"/>
    </html:select>
    Dans l'attribut collection, il faut effectivement mettre le nom de l'objet correspondant à la collection présent dans le scope, donc dans ton cas commercial.

    Les propriétés référencées dans l'attribut property et labelProperty doivent correspondre aux propriétés de l'objet Commercial car commercial est une collection d'objets de type Commercial.

    Et enfin, la propriété référencée dans l'attribut property du tag html:select contiendra la valeur sélectée lorsque le formulaire sera soumis.
    Il faut donc définir cette propriété dans l'ActionForm avec getter et setter.
    Il s'agit de l'ActionForm liée à l'Action qui s'exécute au submit du formulaire.

    Par contre, attention, si tu appelles cette propriété com_id, il faut coder le getter getCom_id et le setter setCom_id avec un "C" majuscule dans l'ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	private String com_id;
     
    	public String getCom_id() {
    		return this.com_id;
    	}
    	public void setCom_id(String com_id) {
    		this.com_id = com_id;
    	}
    Le code html généré sera du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="com_id">
    	<option value="commercialId1">commercialName1</option>
    	<option value="commercialId2">commercialName2</option>
    </select>

  3. #3
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 1 958
    Points
    1 958
    Par défaut
    oki oki, je suis en pleine phase de reflexion
    merci

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

Discussions similaires

  1. Quelques précisions sur le type double
    Par darkwall_37 dans le forum Débuter
    Réponses: 10
    Dernier message: 10/11/2009, 13h51
  2. html:options - collection dans un objet en session-
    Par gazier20 dans le forum Struts 1
    Réponses: 3
    Dernier message: 13/06/2007, 10h12
  3. [Struts 1.1] [html:options collection]
    Par bbo1991 dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/02/2007, 21h52
  4. Quelques "précisions" sur Struts
    Par Atma_ dans le forum Struts 1
    Réponses: 19
    Dernier message: 03/11/2006, 15h20
  5. html:options collection (remplir au demarrage)
    Par zurich dans le forum Struts 1
    Réponses: 3
    Dernier message: 05/08/2006, 12h04

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