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 :

Requestprocessor: redéfinir la population et le retrieve des jsp


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Résolu] Requestprocessor: redéfinir la population et le retrieve des jsp
    Bonjour,

    Est-ce qu'il est possible de redéfinir l'endroi ou sont stoqué les forms dans la session?

    J'aimerais que mes forms soit insérer et récupérer (par la JSP) depuis une Map que j'ai dans la session... Le but étant d'avoir des flux en parallèle qui utilise chacun une map différente..

    Mon context est actuellement en mode session, mais la solution est pêtre de passer en mode request, et de gérer manuellement ces copie dans la map...
    Est-ce que vous voyez une soluce plus simple et automatisable par la redéfinition du requestProcessor?

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    La méthode processActionForm de la classe RequestProcessor semble faite pour ça, cependant, il y aura un problème au niveau de la page.
    Elle ne trouvera pas le bean en session, il faudra bien trouver un moyen pour contourner ce problème...

    Pourquoi veux-tu faire ça au juste ?
    Tu veux pouvoir travailler avec plusieurs utilisateurs sur une même session http ou quelque chose dans le genre ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Alors, oui en effet le problème est plutot situé de l'autre coté au niveau de la page...

    Le but est de pouvoir faire tourner en parallèle avec la meme session une meme page mais qui accède à d'autres forms... Mais pour l'instant on est en mode scope=session, donc ca ne va pas..

    Une soluce est d'utiliser le mode request, mais c'est bcp plus lourd à gérer surtout pour gérer la récupération des tableaux..

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je vois à priori 2 manières de faire :

    1- Tu utilises effectivement processActionForm et tu stockes dans une map en session en même temps que tu "pousses" le formulaire dans le request
    (normalement, s'il ne trouve pas dans un scope, il devrait chercher dans l'autre, mais ça reste à vérifier)

    2- Tu définis ton bean toi même dans la page et tu le récupères de la map
    (via un taglib, par exemple)

    Dans les 2 cas, je n'ai pas testé...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Ok merci,

    Je viens de finir le truc, ca marche nickel maintenant, plusieurs flux en paralèlle...

    Donc j'ai en effet redéfini la fct processActionForm, mais j'ai aussi tout passé les actions et forms en mode request.

    Dans processActionForm, si la form est deja dans ma map (en session), je copie tous les champs par reflexion dans l'objet form, ensuite je laisse la fct super.processPopulate(request, response, form, mapping); gérer la copie des properties nouvelles ou modifiés..

    Assez simple au final, mais j'ai perdu bcp de temps avec cette gestion du tag logic:iterate, avec le quel j'espérais créer mon tableau.. mais impossible..
    Mais la copie de la form session -> request avant le populate.. règle le problème!

    Voila merci bien..

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu utilises la réflexion ?
    Ne préfères-tu pas utiliser la méthode copyProperties de BeanUtils ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     public static void copyProperties(Object dest,
                                      Object orig)
                               throws IllegalAccessException,
                                      InvocationTargetException
     
        Copy property values from the origin bean to the destination bean for all cases where the property names are the same.
     
        For more details see BeanUtilsBean.
     
        Parameters:
            dest - Destination bean whose properties are modified
            orig - Origin bean whose properties are retrieved 
        Throws:
            IllegalAccessException - if the caller does not have access to the property accessor method 
            IllegalArgumentException - if the dest or orig argument is null or if the dest property type is different from the source type and the relevant converter has not been registered. 
            InvocationTargetException - if the property accessor method throws an exception
        See Also:
            BeanUtilsBean.copyProperties(java.lang.Object, java.lang.Object)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Oui la reflexion, car j'ai essayé en fait BeanUtils, et ça ne voulais pas fonctionner.. j'ai pas comrpis, mais il faisait une exception de type incompatible.. alors que c'est le meme, donc .. je suis passé à la reflexion...
    Mais merci pour conseil j'aurais préféré aussi BeanUtils..
    A+
    Oli

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/10/2010, 19h08
  2. [JSP][Tomcat] : forcer la compilation des jsp.
    Par Ekros dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 29/04/2004, 11h27
  3. [TOMCAT] Lancement des JSP, servlets
    Par sylvain_neus dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 22/03/2004, 10h03
  4. [ECLIPSE]Compilation des JSP
    Par partyboy dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 03/09/2003, 21h37

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