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 :

DisplayTag : Le formulaire associé n'est pas modifié


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Par défaut DisplayTag : Le formulaire associé n'est pas modifié
    Bonjour à tous.

    Après avoir cherché dans pas mal de direction, je m'en remets à vous pour trouver une solution à mon problème.

    Le besoin : l'utilisateur choisit un mois et une année et valide. Dans la même page, j'affiche un tableau des résultats juste en dessous. Ce tableau possède des champs éditables pour modifier directement les valeurs des objets. Un deuxième bouton doit permettre de valider les changements, sans changer de page, en affichant les nouvelles valeurs.

    J'ai donc dans ma jsp un premier bout du formulaire avec mois et année, un premier submit lié à une action qui va charger la liste des résultats.

    Dans la même jsp, en testant si la liste existe, j'affiche le contenu de cette liste dans un DisplayTag. Jusque là, aucun problème.

    Seulement je veux pouvoir modifier des valeurs dans les objets de cette liste. (un peu comme ici : http://demo.raibledesigns.com/appfus...users-edit.jsp)
    Sauf que je voudrais pouvoir modifier toutes mes lignes d'un coup, et qu'un second submit du formulaire prenne en compte mes modifications.
    (et oui, un seul formulaire pour le tout)

    Dans mon décorateur, j'ai fait en sorte d'avoir dans une colonne un champs de type text, qui affiche par défaut la valeur de l'attribut modifiable.

    Mon soucis, c'est que quand je valide mon formulaire, dans l'action appelée, les valeurs des objets dans la liste sont inchangées. Je peux donc écrire n'importe quoi dans mon champs texte, cela n'affecte pas les données de mon formulaire.

    Petite précision,je ne pas utiliser les Dispatcher.
    J'ai donc essayé de mettre un autre formulaire dans ma jsp, comme simuler un dispatch mais avec deux actions bien distinctes, j'ai essayé de remplir le DisplayTag avec une liste passée en session et non à partir du formulaire. J'ai essayé de me passer du formulaire dans la première partie en chargeant le tableau en Ajax.
    Enfin bref, j'ai essayer 3 ou 4 façon différentes de faire, et à chaque fois, arrive un moment où je me retrouve bloqué :/

    Vous n'auriez pas une piste par hasard ?

    Je pense que je vais me repencher sur le chargement asynchrone du tableau, de sorte à n'avoir qu'un seul formulaire, une seule action, un seul mapping... Resterai à voir comment faire pour dire à mon DisplayTag de se recharger tout seul...

  2. #2
    Membre averti
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Par défaut
    [RESOLU]

    bon voila... j'ai trouvé ma solution ici : http://87.98.128.200/forums/archive/.../t-278365.html

    en fait dans le decorator, il suffit de mettre des simples <input type="text" name="liste["+this.getCurrentRowNumber()+"].valeur"

    En effet, suffit ensuite de récupérer les données dans le httpRequest en faisant

    for index=0 ; liste.size()-1 ; ++
    maValeure = request.getParameter("liste["+index+"].valeur");
    monForm.getListe(index).setValue(maValeure).

    En gros on refait manuellement ce que fait normalement Struts tout seul en faisant correspondre un formulaire et ses champs <html:text>

    Le mieux tout de même, c'est je pense d'ajouter dans les objets contenus dans la liste, un attribut 'index'. Personnellement, je ne sais pas comment display:tag gère l'indexation quand on a trié le tableau.

    du coup dans l'action :
    if (monForm.getListe(index).getIndex() == index){
    ->affectation;
    }

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

Discussions similaires

  1. [PDO] UPDATE renvoie 0 si le champ n'est pas modifié
    Par Alexdezark dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2010, 01h56
  2. Réponses: 2
    Dernier message: 07/11/2008, 07h22
  3. Réponses: 11
    Dernier message: 16/06/2008, 21h08
  4. Réponses: 2
    Dernier message: 09/08/2006, 21h56
  5. [ADO.Net][VB.NET 2.0] Pourquoi ma bdd n'est pas modifiée ?
    Par olivier57b dans le forum Accès aux données
    Réponses: 5
    Dernier message: 30/04/2006, 21h51

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