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

Spring Java Discussion :

valeur SELECTED dans un select [Data]


Sujet :

Spring Java

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut valeur SELECTED dans un select
    Bonjour,

    J'ai un formulaire de type AbstractWizardFormController qui permet la selection d'une option dans une liste d'objets. Tout fonctionne si ce n'est que lorsque l'option est déjà connue, la valeur SELECTED ne se met pas par défaut..

    La liste est fournie via le controller comme ceci:
    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
     
      @Override
      protected Map<Object,Object> referenceData(HttpServletRequest request, Object command,
    		Errors errors, int page) throws Exception {
     
    	    Map<Object, Object> dataMap = new HashMap<Object, Object>();	    
     
    		tlocationManager.loadClass(TypeLieu.class);
    		dataMap.put("typeLocList",this.tlocationManager.getList());
    		tcommManager.loadClass(TypeCommunication.class);
    		dataMap.put("typeCommList",this.tcommManager.getList());
    		initiativManager.loadClass(Initiative.class);
    		dataMap.put("initiList",this.initiativManager.getList());
     
     
     
    	 	return dataMap;
    }
    J'affiche la liste dans le formulaire de ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form:form method="POST" commandName="rapport"> 
     
    Initiative : 
    		<form:select path="initiative">
    			<form:option value="-1" label="Veuillez choisir..."/>
    			<form:options items="${initiList}" itemValue="initiativId" itemLabel="initiativNom" />
    		</form:select><font color="red"><form:errors path="initiative"/></font>
    	<br/>
    </form:form>
    L'objet Rapport contient un objet Initiative, pour faire le lien entre l'identifié retourné par le formulaire et mon objet Initiative, j'utilise ceci :
    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
     
    	@Override
    	protected void initBinder(HttpServletRequest request,
    			ServletRequestDataBinder binder) throws Exception {
     
    		df.setLenient(true);    
    		binder.registerCustomEditor(Date.class, new CustomDateEditor(df, false));
    		/*
    		CommonTypePropertyEditor<Initiative> initTpe = new CommonTypePropertyEditor<Initiative>(initiativManager,Initiative.class,"getInitiativId()");
    		binder.registerCustomEditor(Initiative.class,initTpe);
    		*/
    		InitiativeTypePropertyEditor initTpe = new InitiativeTypePropertyEditor();
    		initTpe.setInitiativManager(initiativManager);
    		binder.registerCustomEditor(Initiative.class,initTpe);
     
    		CommonTypePropertyEditor<TypeCommunication> tCommTpe = new CommonTypePropertyEditor<TypeCommunication>(tcommManager,TypeCommunication.class,"tcommId");
    		binder.registerCustomEditor(TypeCommunication.class,tCommTpe);
     
    		CommonTypePropertyEditor<TypeLieu> tLocTpe = new CommonTypePropertyEditor<TypeLieu>(tlocationManager,TypeLieu.class,"tlieuId");
    		binder.registerCustomEditor(TypeLieu.class,tLocTpe);
     
    	}
    Le propertyEditor en détail :
    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
     
     
    public class CommonTypePropertyEditor<R> extends PropertyEditorSupport{
    	private CommonManager<R> commonManager;
    	private Class<R> classBean;
    	private String idFieldName;
     
    	public CommonTypePropertyEditor(CommonManager<R> commonManager,Class<R> classBean,String idFieldName)
    	{
    		this.classBean=classBean;
    		this.commonManager = commonManager;
    		this.idFieldName = idFieldName;
    	}
     
    	@Override
    	public void setAsText(String arg0) throws IllegalArgumentException {
    		commonManager.loadClass(classBean);
    		R myInst = commonManager.getObjById(Long.parseLong(arg0));
    		this.setValue(myInst);
    	}
    }
    Jusque là tout va bien, je récupère bien la bonne valeur, mon rapport est bien constitué de mon objet Initiative retourné par le formulaire..
    Le problème est que, lorsque je reviens sur la page jsp où se trouve la liste de choix (select), l'option de mon select, qui est déjà connue, n'est pas "SELECTED" ...

    Je suppose parce qu'il attend un string contenant l'identifiant et qu'il trouve un objet de type Initiative..

    Comment puis-je résoudre ceci ?

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    pil poil un mois plus tard, toujours pas de réponse.
    Si quelqu'un rencontre se problème, il faut en fait simplement redéfinir la méthode equals de votre bean..

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

Discussions similaires

  1. changer la valeur selectionne dans un select
    Par eyolas dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/05/2007, 20h15
  2. Afficher une valeur particuliere dans un SELECT
    Par metalcoyote dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/02/2007, 10h48
  3. Récupérer l'indice d'une valeur donnée dans un select
    Par mgemc2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/08/2006, 11h31
  4. Valeur selectionnée dans un select
    Par mic79 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/05/2005, 14h03
  5. Joindre une valeur arbitraire dans un SELECT
    Par Tuxxy dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/01/2004, 17h04

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