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 :

[nested:options] impossible d'indexer


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut [nested:options] impossible d'indexer
    j'ai une classe option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class OptionForm extends org.apache.struts.validator.ValidatorForm {
        private String type[];
        public OptionForm() {
            super();
            // TODO Auto-generated constructor stub
        }
        public void reset(ActionMapping mapping, HttpServletRequest request){
            type=new String[]{"Catering","Diverses"};
        }
    je souhaite indexer la propriété type dans un select dans ma page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <td>
             <nested:select property="type">
                  <html:option value="séléctionnez"/>
                  <nested:options collection="type"/>
              </nested:select>
        </td>
    le code de la page jsp n'est pas correct mais j'ai essayer plusieurs solutions, je ne pense pas avoir bien compris le fonctionnement de la balise.
    merci pour votre aide

  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
    Tout d'abord, il faut distinguer la propriété qui contient le tableau des options à afficher de la propriété qui va permettre de récupérer l'option sélectée.

    Dans l'attribut property du tag nested:select, il faut donc spécifier une propriété de type String et la définir avec getter et setter dans l'ActionForm.

    Deuxièmement, les options étant dans un tableau de String et non dans une collection de beans, il faut plutôt coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             <nested:select property="typeSelecte">
                  <html:option value="Sélectionnez"/>
                  <nested:options name="type"/>
              </nested:select>

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut
    Merci pour ton aide

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut
    après explication voici mon code jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <nested:select property="type">
       <html:option value="Sélectionnez"/>
       <nested:options property="SelectType"/>
     </nested:select>
    ma form bean:
    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
    public class OptionForm extends org.apache.struts.validator.ValidatorForm {
    ...
    private String SelectType[];
    private String type;
    public void reset(ActionMapping mapping, HttpServletRequest request){
            setSelectType(new String[]{"Catering","Diverses"});
         }
      public String[] getSelectType() {
            return SelectType;
        }
     
        public void setSelectType(String[] SelectType) {
            this.SelectType = SelectType;
        }
       public String getType() {
            return type;
        }
     
        public void setType(String type) {
            this.type = type;
        }
    }
    et je reçois le code d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: No getter method available for property SelectType for bean under name OptionForm
    et pourtant le getter et setter sont bien présent dans la classe optionForm!

  5. #5
    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 n'as pas bien regardé le code que je t'ai donné précédemment.

    Il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <nested:options property="SelectType"/>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <nested:options name="SelectType"/>

  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
    Mea culpa. Apparemment, je ne suis pas bien réveillée aujourd'hui.

    En fait, ceci devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <nested:select property="type">
       <html:option value="Sélectionnez"/>
       <nested:options property="SelectType"/>
     </nested:select>
    à partir du moment où le tag nested:select est bien dans un tag html:form et que le nom du form-bean correspondant à la classe OptionForm est bien référencé dans le mapping de l'Action via l'attribut name.

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

Discussions similaires

  1. [AC-2000] intégrité référentielle impossible cause indexe unique introuvable
    Par rankynette dans le forum Modélisation
    Réponses: 6
    Dernier message: 10/02/2010, 12h06
  2. un impossible "list index out of range" alors que si !
    Par guiguizekid dans le forum Général Python
    Réponses: 3
    Dernier message: 18/05/2008, 04h04
  3. Réponses: 4
    Dernier message: 19/01/2006, 16h24
  4. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05
  5. [STRUTS] Options tag must be nested in a Select tag
    Par meufeu dans le forum Struts 1
    Réponses: 2
    Dernier message: 26/05/2004, 10h21

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