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 :

revenir sur la page courante après une action


Sujet :

Struts 2 Java

  1. #1
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut [Résolu] revenir sur la page courante après une action
    bonjour,

    Après moult recherche infructueuses...

    Est-il possible de revenir sur current page après une action struts 2.

    Je m'explique :

    J'ai une action struts générique dans mon fichier xml,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           <action name="monAction" class="com.blog.services.monAction">
                <result name="success">*</result>
            </action>
    et je voudrait que mon result me renvoie toujours vers la page courante ou est effectuée l'action la page identifiée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getRequestURI();
    est-ce possible ?

    merci

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Tu peux faire un redirect avec le result. Je ne sais pas le code exact car j'ei de redirect en me servant des annotations.


    A+
    Neerou

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 128
    Points
    128
    Par défaut
    Slt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action name="monAction" class="com.blog.services.monAction">
                <result name="success">Met ici la page que tu veux</result>
            </action>
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <result name="success">/login.jsp</result>

  4. #4
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut
    Citation Envoyé par saziley Voir le message
    Slt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action name="monAction" class="com.blog.services.monAction">
                <result name="success">Met ici la page que tu veux</result>
            </action>
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <result name="success">/login.jsp</result>

    merci mais j'ai mal du me faire comprendre, je ne veux pas retourner sur une page en particulier (style login.jsp) mais sur la page courante peut importe d'ou j'appelle mon action.

  5. #5
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Hello,

    Pourrais-tu nous dire quel est ton but de faire ça?
    Peut-être que tu t'y prends mal.
    Pourrais-tu nous expliquer plus en détail ce que tu fais dans l'action et si ça a une incidence sur la page que tu affiches?

  6. #6
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut
    merci, concrètement j'ai un bouton qui pour changer de langue appelle une méthode qui modifie la locale, je veux, au de cette méthode revenir sur la page courante, quel quelle soit.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 82
    Points
    82

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 82
    Points
    82
    Par défaut
    D'après ce que j'ai compris il faut créer ton propre type de result. Je m'explique :

    Etape 1 creer une classe de Result:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package elib.action.test;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.log4j.Logger;
    import org.apache.struts2.ServletActionContext;
    import org.apache.struts2.dispatcher.ServletRedirectResult;
     
    import com.opensymphony.xwork2.ActionInvocation;
     
    public class GotoSamePageResult extends ServletRedirectResult{
     
    	public static final Logger log = Logger.getLogger(GotoSamePageResult.class);
     
    	public GotoSamePageResult() {
    		log.info("created");
    	}
     
     
     
    	@Override
    	protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception {
    		log.info("works");
     
     
    		HttpServletRequest req = ServletActionContext.getRequest();
    		//String loc = req.getRequestURL().toString();
    		String loc = req.getHeader("Referer");
     
    		log.info("Url courant : "+loc);
     
    		super.doExecute(loc, invocation);
    	}
     
     
    	/*
    	private DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
     
    	@Override
    	protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception {
    		String date = df.format(new Date());
    		String loc = "/section/document/"+date;
    		super.doExecute(loc, invocation);
    	}
    */
     
    }

    Etape 2 : Ajouter le ResultType au package voulu dans le fichier struts.xml ( le plus haut possible dans la hierarchie des packages ) avec un nom unique pour éviter les conflits

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <result-types>
    <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
    <result-type name="samePage" class="elib.action.test.GotoSamePageResult"
    />
    </result-types>
    Etape 3: Donner un jolie nom à ton action et ajouter le type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action name="RetournerVersLaMemePage" >
    		<result type="samePage" />
              </action>

    Biensur dans la méthode doExecute() tu fais ce que tu veux
    Mais attention si tu renvoies vers la même action ça fait une boucle infinie

  9. #9
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Points : 182
    Points
    182
    Par défaut
    all right ! merci pour ce petit rapel, je n'utilise jamais les result-type, c'est pas mal et élégant.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/05/2012, 11h33
  2. [MySQL] rester sur page courante apres une insertion..
    Par xavioche77 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/06/2010, 22h37
  3. ouvrir une autre page après une action clavier
    Par Jahjouh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2008, 15h23
  4. Revenir sur la page courante
    Par Katachana dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/09/2007, 17h25
  5. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50

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