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 :

Migration Struts 1.0.2 vers Struts 1.1


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2009
    Messages : 56
    Points : 39
    Points
    39
    Par défaut Migration Struts 1.0.2 vers Struts 1.1
    Bonjour,
    Dans struts 1.1, on peut appeler la méthode mapping.setInput() ?

    Mon application déclenche une exception java.lang.IllegalStateException:
    Configuration is frozen
    ,quand j'appelle mapping.setInput("/page.jsp") à la fin de ma méthode validate dans l'ActionForm
    Pourtant le code fonctionne pour la version Struts 1.0.2

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2009
    Messages : 56
    Points : 39
    Points
    39
    Par défaut form.validate() dans l'action
    La seule solution que je trouve sur le NET :
    1. Mettre validate="false" pour l'action.
    2. Configurer un forward pour chaque page d'erreur
    3. Explicitement appeler form.validate() dans l'action
    4. Appeler la méthode saveErrors() Si la validation échoue
    5. Redirection vers le bon forward

    Vous pensez que c'est la bonne solution ?

  3. #3
    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
    Il suffit d'ajouter l'attribut input="/page.jsp" dans le mapping de l'Action.
    Ainsi, tu seras redirigé automatiquement vers cette page en cas d'erreur de validation.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2009
    Messages : 56
    Points : 39
    Points
    39
    Par défaut j'ai bien cette valeur input !
    Merci
    Mais j'ai bien cette valeur input !
    <action name="MonForm" type="MonAction"
    input="autrePageErreur.jsp" scope="session" path="/monAction">
    <forward name="erreurA.jsp" path="/ErreurA.jsp" />
    <forward name="erreurB.jsp" path="/ErreurB.jsp" />
    <forward name="succes" path="/succes.jsp" />
    </action>


    je veux changer cette valeur dynamiquement dans l'actionform (comme avec Struts 1.0.2) de cette manière :

    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {

    if (MaDispatchAction_Methode="A"))) {

    mapping.setInput("/ErreurA.jsp");

    }

    if (MaDispatchAction_Methode="B"))) {

    mapping.setInput("/ErreurB.jsp");
    }

    return errors;
    }



    ?

  5. #5
    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
    Je ne savais pas qu'on pouvait modifier cette valeur dynamiquement en Struts 1.0 mais je sais qu'on ne peut plus le faire en 1.2 et apparemment non plus en 1.1.

    Vu que tu as défini les pages d'erreurs dans les forward, tu peux les accèder via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mapping.findForward("erreurA.jsp");

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2009
    Messages : 56
    Points : 39
    Points
    39
    Par défaut
    Mais la méthode mapping.findForward("erreurA.jsp") doit être utiliser dans une Action !

    Alors que ma méthode validate() sera appeler dans une ActionForm (avant de passer à l'Action )


    public class actionForm extends ActionForm {
    //...
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {

    if (MaDispatchAction_Methode="A"))) {
    mapping.findForward("erreurA.jsp"); ???

    }
    if (MaDispatchAction_Methode="B"))) {
    mapping.findForward("erreurA.jsp"); ???
    }
    return errors;
    }

    }


    !

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Janvier 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Janvier 2009
    Messages : 56
    Points : 39
    Points
    39
    Par défaut
    application throws java.lang.IllegalStateException: Configuration is frozen

    Notez qu'il y'a une très bonne raison de la configuration des objets congelés(frozen) à partir de strust 1.1 ... parce que cette configuration est partagée par tous les utilisateurs.Si nous sommes autorisés à la changer, nous aurons une incidence sur tous les utilisateurs de notre applications qui accèdent en même temps !!

    La modification de cette configuration est la voie à suivre pour mon besoin particulier !

    ?

  8. #8
    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
    En fait, si tu utilises une DispatchAction, ceci est la bonne solution :

    Citation Envoyé par VIP001 Voir le message
    La seule solution que je trouve sur le NET :
    1. Mettre validate="false" pour l'action.
    2. Configurer un forward pour chaque page d'erreur
    3. Explicitement appeler form.validate() dans l'action
    4. Appeler la méthode saveErrors() Si la validation échoue
    5. Redirection vers le bon forward

    Vous pensez que c'est la bonne solution ?

Discussions similaires

  1. migration struts 1.1 vers struts 1.2
    Par jayjaypg22 dans le forum Struts 1
    Réponses: 0
    Dernier message: 24/02/2010, 13h21
  2. migration d'actionMapping de Struts vers Struts 2
    Par pcouas dans le forum Struts 2
    Réponses: 4
    Dernier message: 27/05/2009, 13h08
  3. Migration de struts 1.1 vers struts 1.2.9
    Par VIP001 dans le forum Struts 1
    Réponses: 4
    Dernier message: 27/02/2009, 13h32
  4. Migration de struts 1.0 vers struts 1.3
    Par ElOmbre495 dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/03/2008, 15h54
  5. Migration Struts 1.2.9 vers Struts 1.3.8
    Par mmschnef dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/04/2007, 15h33

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