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 :

Annotations > Global Result


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut Annotations > Global Result [résolu à 90%]
    Bonjour,

    Dans mon ancienne configuration XML, j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <struts>
    	<constant name="struts.devMode" value="true" />
    	<package name="public" extends="struts-default">
    		<global-results>
    			<result name="error">/error.jsp</result>
    [...]
    J'ai donc mis dans ma classe Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MonAction {
    	public String execute() {
    		if (toto) {
    			return "error";
    		}
    	}
    }
    Et j'ai droit à un "Struts Problem Report":
    No result defined for action pkg.MonAction and result error
    Donc voilà mon problème : comment puis-je utiliser des globals results avec les Annotations ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut
    Salut ,

    Il me semble que ton action doit hériter de ActionSupport, dans cette classe , les variables de retour ERROR SUCCESS etc sont définies sous formes de constantes.
    Bref dans ton action il faut ajouter je crois return ERROR ( sans les guillemets ) et "extends ActionSupport" apres la classe.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut
    Merci pour ton aide mais ActionSupport.ERROR est égal à "error".

    Ma question c'est : où est-ce que je pourrais spécifier des globals results comment je le faisais dans struts.xml mais en utilisant les Annotations ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut
    J'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <global-results>
    	<result name="error">/general/error.jsp</result>
    	<result name="sessionerror">/general/sessionerror.jsp</result>
    </global-results>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut
    Ok, j'ai trouvé d'où vient le problème.
    Il faut spécifier le @ParentPackage dans l'action :
    Code struts.xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <struts>
    	<package name="public" extends="struts-default">
    		<global-results>
    			<result name="error">/error.jsp</result>
    [...]

    Code Action Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @ParentPackage(value = "public")
    public class MonAction {
    	public String execute() {
    		if (toto) {
    			return "error";
    		}
    	}
    }

    L'autre solution est de mettre dans toutes les classes qui peuvent générées des "error"s :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    @Result(name = "error", value = "/error.jsp")

    Ça règle mon problème mais je ne sais pas si je dois mettre en la discussion en parce que je ne trouve pas cette solution optimale.

    En effet, n'y a-t-il pas moyen de se passer de package name et de mettre un global result vraiment global (sans package name) ?

Discussions similaires

  1. Annotations > Redirect Action Result > params
    Par gpmoo7 dans le forum Struts 2
    Réponses: 1
    Dernier message: 19/04/2011, 17h26
  2. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  3. Fichier de fonctions globales
    Par PEM dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/07/2002, 21h35
  4. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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