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

Servlets/JSP Java Discussion :

Mettre une condition dans une action


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Par défaut Mettre une condition dans une action
    Bonjour,

    je n'arrive pas à trouver comment mettre une condition dans mon action (enfin, je pense qu'il faut la mettre là) afin d'accèder à une page jsp où il y a bouton qui s'execute lorsque l'on clique dessus.
    Pour l'instant, le problème, c'est que lorsque je clique sur le lien de mon menu me permettant d'accèder à cette page, l'action s'execute comme si j'avais déjà cliqué sur le bouton alors que je ne suis pas encore arrivé dessus.

    Donc comment puis-je m'y prendre ? j'utilise struts au cas où cela pourrait vous évoquer d'autres pistes.

    Merci d'avance pour vos réponses.

    Bonne fin de journée

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    sans voir ton code, c'est pas evident.
    fais voir ton Action, ton struts-config.xml et ta page .jsp

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Par défaut
    voilà, voilà !!

    voici le code de ma jsp (enfin une partie rassurez-vous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="PurgerUploadAction.do">Purger la table des uploads</a>
    celui de mon struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <action path="/PurgerUploadAction" type="org.springframework.web.struts.DelegatingActionProxy"
     input="/WEB-INF/jsp/purgerUpload.jsp" 
     scope="session" 
    validate="false">
      <forward name="success" path="/WEB-INF/jsp/purgerUpload.jsp"></forward>
     </action>
    et enfin celui de l'action correspondante
    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
     
    public class PurgerUploadAction extends Action {
     
    	private StructureFacade structureFacade=null;
    	public void setStructureFacade(StructureFacade structureFacade) {
    		this.structureFacade = structureFacade;
    	}
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {
     
    		structureFacade.purgerUpload();
    		return mapping.findForward("success");
     
    	}
    }
    l'objectif est de lancer ma méthode purgerUpload uniquement lorsque j'ai cliqué sur le lien dans ma jsp alors que là, forcément, il essaye de l'executer direct.

    Merci d'avance

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    il faut que tu déclares une action "intermédiaire" qui fait afficher la jsp...(puisque tes jsp sont dans le répertoire WEB-INF, cad protégées) et c'est dans la jsp que tu as un lien "Purger la table des uploads".

    Pour se faire, tu peux faire comme ça :
    dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="PurgerUploadView.do">Purger la table des uploads</a>
    dans struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action path="/PurgerUploadAction" type="org.springframework.web.struts.DelegatingActionProxy"
     input="/PurgerUploadView.do" 
     scope="session" 
    validate="false">
      <forward name="success" path="/WEB-INF/jsp/purgerUpload.jsp"></forward>
     </action>
     
    <action path="/PurgerUploadView" forward="/WEB-INF/jsp/purgerUpload.jsp"/>
    et dans la jsp purgerUpload.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="PurgerUploadAction.do">Purger la table des uploads</a>
    ps : si tu mets validate à false, l'attribut input ne sert à rien; non?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Par défaut
    Bonjour,

    merci pour ta réponse Mattheox. je vais essayer ce que tu m'as indiqué tout à l'heure et je te tiens au courant.
    J'y avais pensé aussi mais je ne connais pas très bien struts en fait.
    Du coup, tu as sûrement raison par rappport à la balise input qui ne sert à rien. D'ailleurs à quoi sert-elle au juste ? ça m'intéresserai de savoir.

    à plus tard et bonne journée

  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
    Billets dans le blog
    1
    Par défaut
    Sinon, tu peux appeler la page plutôt que d'appeler le contrôleur (au niveau du lien), à moins que tu n'ais des initialisations à faire nécessitant le contrôleur.

    Tu peux également utiliser un contrôleur étendant DispatchAction (ou LookupDispatchAction si tu préfères...), créer une méthode "load" et une méthode "check" pour distinguer les 2 cas...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Par défaut
    J'ai finalement opté pour la première méthode et ça marche impec'

    Par contre, pour les autres fois, je vais penser à ce que tu m'as proposé OButterlin, comme ça je connaîtrai d'autres façons de faire, ça peut servir.

    merci pour vos réponses en tout cas.

    Bonne journée à tous

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

Discussions similaires

  1. mettre un swf dans une iframe dans une page html
    Par petitevero dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/04/2011, 02h58
  2. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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