Recup données html:select dans classe action

Recup données html:select dans classe action - Java - Programmation

Marsh Posté le 16-06-2005 à 10:48:23    

J'aimerais savoir comment récupère-t-on les données sélectionnées de ma JSP dans la classe Action car je récupère en fait toutes les données du vecteur de départ alors que j'aimerais ne récupérer que les champs sélectionnés.
 
JSP:
 
<html:select name="DELTALIST" property="idType">
    <html:optionsCollection name="DELTALIST" property="com" label="commande" value="idCom" />
</html:select>
 
com est un vecteur de commandes
 
Classe Action:
 
public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException, ServletException, NamingException  
 {
  System.out.println("Action SendData" );
  String cible="true";
   
  DataBean db=(DataBean)actionForm;
   
  System.out.println("Description:"+db.getDescription());
  System.out.println("Longueur vecteur commandes:"+(db.getCom()).size());
     
  ComBean cb=(ComBean)db.getCom().firstElement();
  System.out.println(cb.getCommande());
   
   return mapping.findForward(cible);
  }
 
Le DataBean est le formulaire qui est retourné de ma JSP, il contient un vecteur de commandes mais retourne tous mes éléments du vecteur et non seulement ceux sélectionnés. ComBean est l'objet qui se trouve dans le vecteur et qui contient comme variables la commande et son id (idCom). Comment ne ramener que les éléments sélectionnés? Via un script c'est sûrement possible ou encore passer l'id du dans l'url mais bon il y a sûrement mieux non? Je pense qu'il est possible d'écraser l'ancien vecteur par le nouveau ne contenant que les éléments sélectionnés mais comment?
 
D'avance merci pour toute aide...
 
 
 

Reply

Marsh Posté le 16-06-2005 à 10:48:23   

Reply

Marsh Posté le 16-06-2005 à 10:52:53    

Oui j'avais oublié de préciser je fais du struts et c'est donc lors du submit du formulaire que j'aimerais récupérer les éléments sélectionnés dans mon Action...

Reply

Marsh Posté le 16-06-2005 à 11:39:28    

Bon ben après beaucoup de recherches j'ai trouvé un système pour récupérer l'élément d'une liste simple dans ma classe Action. Maintenant je cherche à récupérer plusieurs éléments d'une liste (<html:select multiple="true"> ) permettant donc de sélectionner plusieurs items.

Reply

Marsh Posté le 16-06-2005 à 16:29:34    

Bon ben j'ai trouvé tout seul pour finir (avec un peu de bol il est vrai), si ça intéresse quelqu'un il peut me demander...

Reply

Marsh Posté le 19-06-2005 à 11:28:27    

hello,
 
moi je veux bien savoir comment tu as fait ça m'intéresse.
 
Merci

Reply

Marsh Posté le 04-07-2005 à 11:55:59    

Code :
  1. class DataBean {
  2. private Vector com = new Vector();
  3. private Vector ne=new Vector(); //Vecteur contenant un index et une valeur
  4. private int idType;
  5. private int []idNE;
  6. private String description;
  7. }


 
Objet envoyé à la jsp: request.getSession().setAttribute("DELTALIST",new DataBean(v));
 
Dans la JSP:
 

Code :
  1. <TD class=white style="WIDTH: 250px"  noWrap align=middle>
  2.     <html:select name="DELTALIST" property="idNE" value="NE1" multiple="true">
  3.       <html:optionsCollection name="DELTALIST" property="ne" label="nameType" value="num" />
  4.     </html:select>
  5. </TD>


 
Dans idNE se trouve alors les indexs des différents éléments sélectionnés du vecteur de ne et il suffit donc de faire un getElement du vecteur à l'index idNE[i] pour récupérer une valeur.
Enfin je sais pas si j'ai été très clair mais j'ai du boulot... Redemande si besoin.  
 

Reply

Marsh Posté le 04-07-2005 à 13:44:35    

Si, j'ai compris.  
idNE est la liste de tous les indexs sélectionnés par l'utilisateur.  
La liste complète des objets (les sélectionnés et les pas sélectionnés) est dans un autre vecteur : ne.
Les indexs de idNE font référence à ne.
 
Merci pour l'info et bon courage pour la suite.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed