Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1354 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  servlet, method post et tableau asso

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

servlet, method post et tableau asso

n°1816893
hpl76
Fucked with a Knife !
Posté le 26-11-2008 à 11:14:12  profilanswer
 

Bonjour,  
 
Je voulais savoir si quelqu'un pouvait m'aider, car j'essaie désespérément de récupérer dans ma servlet des variables postées depuis un formulaire et ce afin de créer un tableau associatif genre 2004 -> 75A, 2005->90B, 2010->95C (quoi, c'est sexuel ? :lol:). J'ai essayé avec foreach, HashMap et des request.getParameterValues (c'est souligné en rouge) mais j'arrive pas à implémenter :cry:  
 
Cordialement,  
 
hpl76 :bounce:


Message édité par hpl76 le 26-11-2008 à 11:16:39
mood
Publicité
Posté le 26-11-2008 à 11:14:12  profilanswer
 

n°1816897
brisssou
8-/
Posté le 26-11-2008 à 11:21:50  profilanswer
 

le foreach marche pas parce getParameterValues retourne une Enumeration; et c'est pas Iterable.
 
tu peux essayer de wrapper ton enum dans une List avec List l = new List(request.getParameterValues("tonparam" )), ou en utilisant les méthodes de java.util.Collections.
 
sinon, passer par un web framework genre stripes, struts, spring-MVC... te permettra de passer par des comportements précablés pour le passage de tableaux


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1816935
hpl76
Fucked with a Knife !
Posté le 26-11-2008 à 12:12:18  profilanswer
 

Merci brisssou pour ton apport. L'alternative c'est :
 
- soit je fais mon traitement dans ma JSP directement avec le foreach
- soit je poste mes valeurs à ma servlet.
 
Je débute et ne sais pas ce qui est mieux, j'arrive pas à construire ce fichu tableau :
 
20AR -> aze98f7
fa65 -> 67z7eff4
2010 -> 5646544
 
La première valeur étant une clef unique et la deuxième colonne la valeur qui lui est associé. Même si j'avais  
1 -> 20AR -> aze98f7
2 -> fa65 -> 67z7eff4
...
Ca pourrait le faire. Je sais faire sous PHP mais là je bute.  
 
request.getParameterValues est toujours souligné en rouge, j'ai pourtant fait les bons imports (enfin je crois)
 
Vu mon niveau, j'ai repris à partir d'un tuto  :(


---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)
n°1816940
Bidem
Posté le 26-11-2008 à 12:16:30  profilanswer
 

Citation :

request.getParameterValues est toujours souligné en rouge


 
Montre nous ton code car avant de trouver quelque chose qui marche, il faut trouver quelque chose qui compile

n°1816944
hpl76
Fucked with a Knife !
Posté le 26-11-2008 à 12:26:27  profilanswer
 

Bonjour Bidem et merci. J'avais commencé par quelque qui se rapprochait un peu de ce que je voulais faire. Ci-dessous le code du tuto :
 

Code :
  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import java.util.*;
  5. public class myfs extends HttpServlet {
  6.   public void doGet(HttpServletRequest request,
  7.                     HttpServletResponse response)
  8.       throws ServletException, IOException {
  9.     response.setContentType("text/html" );
  10.     PrintWriter out = response.getWriter();
  11.     out.println("<html><body>\n" +
  12.                 "<h1>Tableau des paramètres</h1>\n" +
  13.                 "<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n" +
  14.                 "<tr>\n" +
  15.                 "<th>Nom</th><th>Valeur(s)</th>" );
  16.     Enumeration NomsParam = request.getParameterNames();
  17.     while(NomsParam.hasMoreElements()) {
  18.       String NomParam = (String)NomsParam.nextElement();
  19.       out.println("<tr><td>" + NomParam + "</td></tr>\n" );
  20.       String[] ValeursParam = request.getParameterValues(NomParam);
  21.       if (ValeursParam.length() == 1) {       
  22. String ValeurParam = ValeursParam[0];
  23.         if (ValeurParam.length() == 0)         
  24.  out.println("<td><b>Aucune valeur</i></td>" );
  25.         else          out.println(ValeurParam);     
  26.       }
  27.       else {
  28.         out.println("<td><ul>" );       
  29. for(int i=0; i < ValeursParam.length(); i++) {
  30.           out.println("<li>" + ValeursParam[i] + "</li>" );       
  31. }
  32.         out.println("</ul></td></tr>" );     
  33.       }   
  34.     }
  35.     out.println("</table>\n</body></html>" ); 
  36.   }
  37.   public void doPost(HttpServletRequest request,
  38.                      HttpServletResponse response)
  39.       throws ServletException, IOException {   
  40. doGet(request, response); 
  41.   }
  42. }


 
Dans cet exemple les lignes :
if (ValeursParam.length() == 1) {  
et
for(int i=0; i < ValeursParam.length(); i++) {
sont soulignées en rouge.
 
Cordialement,  
 
hpl76


---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)
n°1817009
Bidem
Posté le 26-11-2008 à 13:59:32  profilanswer
 

Code :
  1. String[] ValeursParam = request.getParameterValues(NomParam);
  2. if (ValeursParam.length() == 1) {


Tu as un tableau là et pour avoir sa longueur, on accède à l'attribut length et non à la méthode length() ;)
 

Code :
  1. if (ValeursParam.length == 1) {

n°1817051
hpl76
Fucked with a Knife !
Posté le 26-11-2008 à 14:29:13  profilanswer
 

Quel coup d'oeil. T'es un chef bidem et moi une copie de Gilbert Montagné  :sol:  
 
J'arrive maintenant à récupérer toutes les valeurs en vrac mais je suis pas sur que je puisse arriver à mes fins avec un getParam...Je t'explique si tu as du temps :
 
Sur mon formulaire en amont, j'ai grosso modo :
 
unicité / prénom / nom / zone de saisie
16401E / Guy / Tare / un champ libre de commentaires
31032F / Yves / Vremort / un champ libre de commentaires
aefa45 / Paul / Poule / un champ libre de commentaires
 
Comment  ferais-tu en quelque sorte pour mettre en corrélation la zone de saisie 1 avec 16401E, la zone de saisie 2 à 31032F etc dans le but de faire un update général. Je cherche à faire de l'associatif comme en PHP mais je galère.
 
Merci de ton soutien.
 
hpl76


---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)
n°1817554
hpl76
Fucked with a Knife !
Posté le 27-11-2008 à 11:57:58  profilanswer
 

Bonjour,  
 
J'ai progressé mais je ne comprends pas pourquoi j'ai cette nouvelle erreur, ci-dessous mon code :
 

Code :
  1. Map m = new HashMap();
  2.             for(int i=0;i<tab1.length;i++){
  3.              m.put(tab1[i],tab2[i]);
  4.             }
  5.            
  6.             for (Iterator it = m.keySet().iterator() ; it.hasNext() ; ){
  7.             String key = it.next();//ligne qui pose problème, typage
  8.             System.out.println("key = " + key + " value = " + m.get(key));
  9.             }


 
Je cherche juste à parcourir et ressortir le couple clef/valeur pour chaque entrée de ma hashmap
 
Par avance merci.
 
hpl76  :bounce:


---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)
n°1817579
hpl76
Fucked with a Knife !
Posté le 27-11-2008 à 12:19:58  profilanswer
 

je ne sais pas si c'est correct (en tout cas ca marche) mais j'ai "trouvé" en faisant :  
 

Code :
  1. //on parcourt et ressort le couple clef/valeur pour chaque entrée
  2.     for (Iterator it = m.keySet().iterator() ; it.hasNext() ; ){
  3.     Object key = it.next();
  4.     //on écrit
  5.     out.println("" + key.toString() + " > " + m.get(key).toString()+"<BR/>" );
  6.     }


 
Ca vous parrait juste ?
 
hpl76


Message édité par hpl76 le 27-11-2008 à 12:20:49

---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)
n°1817586
brisssou
8-/
Posté le 27-11-2008 à 12:26:32  profilanswer
 

dans une HashMap nature, les clefs sont des Object, ton premier code était ok si tu es certain de ne trouver que des String dans tes clefs, mais il manquait un cast :
 
String key = (String) it.next();


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le 27-11-2008 à 12:26:32  profilanswer
 

n°1817758
hpl76
Fucked with a Knife !
Posté le 27-11-2008 à 15:25:34  profilanswer
 

Merci brisssou pour cette précision. J'ai appris beaucoup ces derniers temps. MERCI !


---------------
T'as pas de couilles au cul et quand tu en as c'est pas les tiennes :)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  servlet, method post et tableau asso

 

Sujets relatifs
Tableau multi avec plusieurs donneesTransformation Tableau en Liste de Données
[HTML/Javascript/CSS] [resolu] spoiler une partie de tableau[Php/Mysql]Effacer ligne d'un tableau de données
Ajouter une ligne à un tableau en javascriptProblème courant du tableau 2D
pointeur sur un tableau ? est-ce faisable ?tri d'un tableau
Supprimer une ligne d'un tableau en javascriptPetite loupe dans case d'un tableau no javascript
Plus de sujets relatifs à : servlet, method post et tableau asso


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR