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 :

[html:options] Comment retourner la value et le label ?


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut [html:options] Comment retourner la value et le label ?
    Salut,


    Je souhaiterai mettre a jour un element dans une base de donnees.
    A partir d'une Action, j'attache la liste des elements (un element : 1 id + 1 nom) de ma BD a la requete vers une jsp (setAttribute)


    Dans la jsp, j'affiche la liste de mes elements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html:form action="/UpdateElementFormular">
     
      <html:select property="elementFormId">
        <html:options collection="elementList" property="id"  labelProperty="name"/>
      </html:select>
     
    <p><html:submit>Update</html:submit></p>
    Je voudrais transmettre mon element complet (id + name) a l'Action UpdateElementFormular (pour eviter une nouvelle interrogation en BD) mais je n'arrive a transmettre que celui specifie avec le property de options (normal )

    Je suis donc a la recherche d'une astuce pour retransmettre sur la request http, soit ma liste d'elements, soit l'element correspondant a la selection, soit les 2 champs de mon element selectionne.

    J'ai bien essaye d'ajouter la ligne suivante a mon formulaire mais la liste est transformee en chaine de caracteres inexploitables dans l'Action.
    <input type="hidden" name="elementList" value=<%= request.getAttribute("elementList")%> />

    J'ai egalement essaye de passer par du javascript et le onclick pour aller chercher dans la liste mais je n'arrive pas a transformer ma liste en variable Array javascript.


    J'espere que les explications sont claires

    Merci d'avance pour votre aide

  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
    Pour ma part, je ne vois que deux solutions possibles pour récupérer le name associé à l'id sélecté (mais j'peux me tromper ):

    1) interroger ta BD avec une clause where sur l'id sélecté.
    2) mettre ta liste dans le scope session pour la rendre accessible dans ton Action UpdateElementFormular et balayer ta liste pour trouver le name associé à l'id.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Argh, on est au meme point.

    Pour contourner le probleme, j'ai essayer de faire, dans la jsp,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%
    	List listElement = (List) request.getAttribute("elementList");
    	int listLength = listCluster.size();
     
    	long[] idArray = new long[listLength];
    	char[][] nameArray = new char[listLength][];
     
    	for (int i = 0; i < listLength; i++) {
    		idArray[i] = ((Element)listElement.get(i)).getId();
    		nameArray[i] = ((Element)listElement.get(i)).getName().toCharArray();
    %>
    Je voudrais maintenant dans un javascript associe mes tableaux idArray et nameArray a des tableaux exploitables. Mais je ne vois pas comment iterer sur idArray/nameArray

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    De toutes façons pour faire ton update tu vas bien aller taper en base avec une restriction sur l'id, donc je vois pas où est le problème

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Salut,

    Je ne fais des applis web que depuis le debut du mois, donc j'ai peut etre complique ce qui doit etre fait.

    La premiere jsp (decrite dans mon premier post) affiche la liste des elements que je peux mettre a jour.
    A partir de la, je voulais refaire une page avec une nouvelle jsp (via a priori une Action) pour saisir mes nouveaux parametres. Pour cette etape je pensais ne pas avoir besoin d'acces en base.

    Ensuite seulement je recuperai le formulaire de mise a jour et je faisais la mise a jour en base.

    Si tout le monde s'accorde pour dire que ce n'est pas possible, pas grave, j'accederai effectivement a la base lors de l'etape intermediaire.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    Pour faire propre, tu vas peut être devoir afficher les paramètre déjà enregistrés sur ta page intermédiaire et donc accéder en base non ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Ben justement, c'est pour eviter un acces base que je voulais les recuperer dans ma premiere jsp et les rattacher a la nouvelle requete.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Et si tu utilisais un objet de type Map?
    Genre Hashtable ou TreeMap...

    Tu remplit ta collection normalement avec id et valeur.
    Ensuite, dans ta servlet, une fois que tu as l'id de l'item sélectionné, tu peux facilement récupérer sa valeur ... objHashTable.get(monId) ...

  9. #9
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    Après avoir envoyé la hashmap en session...
    Cela dit si quelqu'un modifie un de tes objet entre le moment où tu affiches la liste et le moment où tu affiches la page pour le modifier c'est moyen.
    Enfin, pour finir, les SGBD sont fait pour faire des recherche, je suppose que ton id est une clé primaire donc une requête ne devrait rien coûter

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Après avoir envoyé la hashmap en session...
    Bah de toute facon, les données sont deja en session puisqu'il affiche les données dans une combo

  11. #11
    Membre régulier Avatar de et.rond.et.rond
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par mkc44
    Ben justement, c'est pour eviter un acces base que je voulais les recuperer dans ma premiere jsp et les rattacher a la nouvelle requete.
    ça peut être dangeureux parce qu'un utilisateur indélicat peut mettre le nom qu'il veut et ainsi modifier la valeur comme il veut

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Effectivement, je ne veux pas attacher ces valeurs a ma session.

    Je vais donc faire une interrogation en base de donnees.

    Merci pour vos avis

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

Discussions similaires

  1. <html:option value="">
    Par eyango dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/02/2008, 18h42
  2. tag <html:option value>
    Par man84 dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/02/2008, 08h01
  3. [DOM] Comment sélectionner une option à partir de sa value
    Par CrazySeb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 12h50
  4. Réponses: 1
    Dernier message: 06/04/2007, 17h52
  5. <html:option> struts
    Par amelie6 dans le forum Struts 1
    Réponses: 2
    Dernier message: 03/03/2004, 18h38

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