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 :

Redisplay suite à échec du validate


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Par défaut Redisplay suite à échec du validate
    Bonjour,
    sur une page utilisant un actionForm, je cherche à valider les données saisies par l'utilisateur. Un des test étant complexe, j'ai effectué celui-ci en surchargeant la méthode validate() de l' actionForm. Jusque là pas de problème, le test est bien effectué mais lorsque celui-ci échoue toutes les données du formulaire ne sont pas réaffichées. En fait seules les données contenues dans des tags struts sont réaffichées ( ex <html:select> ou <html:link> ) toutes celles affichées dans un tableau via un <bean:write> sont vides!!!! Comment faire pour assurer la persistance de ces données lors du retour du validate. Je suppose qu'il faut que l'actionForm soit alimenté mais je ne vois pas comment forcer son chargement sans utiliser un tag struts et il n'existe pas de tag struts pour les tableau.

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Pour afficher la page avec ton tableau, tu dois avoir une action qui initialise le bean et qui le met dans la requête ?
    Dans ton struts-config, lorsqu'il y a une erreur, tu peux rediriger vers cet action d'initialisation et ton bean sera de nouveau rempli.

  3. #3
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonsoir,

    En ce qui me concerne je developpe mes actions Struts de la facon suivante en utilisant DispatchAction. J'ai :

    * un dispatch load qui charge les donnees dont j'ai besoin que la premiere foix pour initialiser mon formulaire et qui fait ensuite appel a :

    * un dispatch display qui ne charge QUE les listes permettant de remplir les select, les listes de tableaux (avec bean:write par ex).

    * un dispatch create qui permet de sauvegarder les donnees du formulaires. Si il y a une erreur (validate), je rappelle le display qui va recharger les donnes (listes, select). Ce dispatch route sur la JSP (retourne un ActionForward sur la JSP)

    Le dispatch display s'ocupe de charger les donnees qui doivent toujours etre charges.

    Si tu es interesse, tu peux voir le site Open Source GestCV sur http://gestcv.sourceforge.net/fr/arc...ts.html#Action Struts
    que je suis en train de rediger, j'explique ce design des Actions Struts.

    Angelo

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Par défaut
    Je suis allé sur le site et j'y retournerai surement car il y a pas mal de technos qui m'intéresse. Pour le découpage des actions Struts j'utilise aussi DispatchAction. J'arrive à obtenir le comportement que je souhaite mais cela me semble lourd...
    Quand je récupére l'action form celui-ci est bien alimenté par les données saisies par l'utilisateurs ( pour compliquer un peu ce sont des collections et nested object ) mais c'est ok. Cependant je suis ensuite obligé de relire en base la partie des données de la page qui sont non modifiables ( donc affichées avec un bean:write dans ma jsp ) , de les réaffecter sur l'action form, pour ensuite redemander l'affichage de la jsp avec l'action form de nouveau completement alimenté.
    Ce que je souhaiterai c'est que l'action form soit directement alimenté avec TOUTES les données afin d'éviter cet accès inutile en base et non uniquement avec les données issues de tag struts...Je pense que ça doit être possible autrement qu'en doublant les bean:write par des input de type hidden ou qu'en stockant le bean en session parce sinon pour certains formulaires complexe cela va être très lourd. Il faudrait juste que je récupére ces données comme si elle étaient modifiables par l'utilisateur et procéder au rechargement COMPLET de l'actionForm

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Par défaut
    Aprés réflexion, il faudrait une sorte de viewstate à la asp.net et c'est peut être un peu trop demandé

  6. #6
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonjour karlus,
    Si j'ai bien compris, tu souhaiterais obtenir le meme mécanisme VIEW STATE utilisé en .Net, qui est un champs caché qui peux contenir toutes tes données que tu utilises dans tes combo.
    Ta solution est possible, mais du coup tes pages riquent de devenir enorme en quantite, si tu as de nombreux items dans tes combo. De plus en terme de developpement, ca risque d'etre assez penible (a chaque ajout d'une combo , tu doit penser a mettre a jour le formulaire qui contient tes items (code ET libelle) dans ton action + construire ta liste d'input code et ta liste d'input libelle.

    Si c'est l'acces en base de données qui te genent et que ces données sont des données de references (ex : pays, continent,...), tu pourrais les mettre en cache.

    Angelo

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

Discussions similaires

  1. Échec de la validation MAC Viewstate
    Par PatStan17 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 30/07/2009, 21h25
  2. [W3C] 16 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/04/2009, 12h36
  3. [W3C] 39 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 12/12/2008, 23h06
  4. [Stratégie] Traitement asynchrone suite à la validation d'un formulaire web
    Par El Saigneur dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 01/10/2008, 21h53

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