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 2 Java Discussion :

Struts et pb de forward redirect-action


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Struts et pb de forward redirect-action
    Bonjour,

    J’ai un problème avec les redirections en Struts 2.

    Voilà ce que j’affiche dans la console (par un Inteceptor de log):

    2009-03-25 09:18:22,231 INFO (ValiderMAJCalendrierPeriodeAction:66) - Entrée dans l'action
    2009-03-25 09:18:23,137 INFO (ValiderMAJCalendrierPeriodeAction:66) - ResultCodeApresInvoke : TEST
    2009-03-25 09:18:23,137 INFO (ValiderMAJCalendrierPeriodeAction:66) - Sortie de l'action
    2009-03-25 09:18:23,153 INFO (MAJCalendrierAction:66) - Entrée dans l'action
    2009-03-25 09:18:23,293 INFO (MAJCalendrierAction:66) - ResultCodeApresInvoke : input
    2009-03-25 09:18:23,293 INFO (MAJCalendrierAction:66) - Sortie de l'action
    2009-03-25 09:18:23,309 INFO (ListerCalendriersAction:66) - Entrée dans l'action
    2009-03-25 09:18:24,168 INFO (ListerCalendriersAction:66) - ResultCodeApresInvoke : success
    2009-03-25 09:18:24,168 INFO (ListerCalendriersAction:66) - l_retour : success
    2009-03-25 09:18:24,168 INFO (ListerCalendriersAction:66) - Sortie de l'action

    Le cheminement est bon pour le début mais là où j’ai un
    2009-03-25 09:18:23,293 INFO (MAJCalendrierAction:66) - ResultCodeApresInvoke : input,
    je devrais avoir
    2009-03-25 09:18:23,293 INFO (MAJCalendrierAction:66) - ResultCodeApresInvoke : success

    Et dans la méthode invoke de l’interceptor, il ne fait rien (à part remplir le resultCode avec la valeur input) pour MAJCalendrierAction alors qu’il appelle tous les interceptor pour les autres actions.

    Interceptor de log :
    /**
    * {@inheritDoc}
    * @see com.opensymphony.xwork2.interceptor.AbstractInterceptor#intercept(com.opensymphony.xwork2.ActionInvocation)
    */
    public String intercept(ActionInvocation a_actionInvocation) throws Exception
    {
    /**
    * le logger
    */
    OULog l_logger = new OULog(a_actionInvocation.getAction().getClass());

    /**
    * Message affiché au début de l'action
    */
    l_logger.info("Entrée dans l'action");

    /**
    * Appel de l'action
    */
    String l_retour = a_actionInvocation.invoke();

    l_logger.info("ResultCodeApresInvoke : "+ retour);

    /**
    * Message affiché à la sortie de l'action
    */
    l_logger.info("Sortie de l'action");

    return l_retour;
    }


    ValiderMAJCalendrierPeriodeAction
    /**
    * createOrUpdate, it creats or update the current Calendrier Periode.
    * @throws FwkException any exception.
    * @return le forward.
    */
    public String createOrUpdate() throws FwkException
    {
    try
    {



    }
    catch (FwkException l_erreur)
    {
    setParamEntree(IGestionCalendrier.PARAM_PERIODE_INPUT);
    setMessageErreur(getText(l_erreur.getMessage()));
    return TEST;
    }
    //for showing message on list identifications screen
    setResultModifier("P");
    return SUCCESS;
    }

     sortie en FwkException -> return TEST

    Struts config .xml
    <action name="validerMAJCalendrierPeriode_*" class="com.inetpsa.cal.actions.calendrier.ValiderMAJCalendrierPeriodeAction" method="{1}">
    <result name="TEST" type="redirect-action">
    <param name="actionName">majCalPeriode</param>
    <param name="method">read</param>
    <param name="id">${id}</param>
    <param name="annee">${annee}</param>
    <param name="periode">${periode}</param>
    <param name="messageErreur">${messageErreur}</param>
    <param name="paramEntree">${paramEntree}</param>
    </result>
    <result name="success" type="redirect-action">
    <param name="actionName">/listerCalendriers.action</param>
    <param name="namespace">/identification</param>
    <param name="paramEntree">GESTION</param>
    <param name="messageErreur">${messageErreur}</param>
    </result>
    </action>

    -> redirect action vers majCalPeriode dans la méthode read

    Struts-config.xml :
    On doit donc passer dans la méthode read de la classe MAJCalendrierAction et en fait on n’y passe jamais et on sort directement en forward input et on arrive donc directement dans /listerCalendrier.action

    <action name="majCalPeriode"
    class="com.inetpsa.cal.actions.calendrier.MAJCalendrierAction"
    method="read">
    <result>
    /WEB-INF/jsp/calendrier/MAJCalPerio.jsp
    </result>
    <result name="input" type="redirect-action">
    <param name="actionName">/listerCalendriers.action</param>
    <param name="namespace">/identification</param>
    <param name="paramEntree">GESTION</param>
    <param name="messageErreur">${messageErreur}</param>
    </result>
    </action>

    public String read() throws FwkException
    {

    System.out.println("dans la methode read de MAJ");

    try
    {

    }
    catch (BusinessException l_erreur)
    {
    setMessageErreur(getText(l_erreur.getMessage()));
    return INPUT;
    }

    return SUCCESS;
    }

    Problème :
     il ne passe jamais dans cette méthode (la trace n’est pas dans la log) et dans aucune méthode de la classe d’ailleurs
     Il sort toujours en forward input -> le forward par défaut étant success, je ne comprends pas pourquoi il sort en input

    Je ne sais pas si mon problème est bien expliqué donc n'hésitez pas à poser des questions.

    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Finalement le probleme (et la réponse) était tout simple!

    On ne peut passer que des String ou List<String> en paramètres dans le redirect du struts-config.xml

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/04/2007, 19h18
  2. [Struts]Paramètres dans un </forward>
    Par asx9 dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/04/2005, 14h51
  3. [Struts]comment forcer un Forward ?
    Par njac dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/10/2004, 15h02
  4. Réponses: 6
    Dernier message: 06/10/2004, 10h41
  5. Réponses: 3
    Dernier message: 30/07/2004, 10h51

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