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 :

Struts revenir sur la page courante, atteinte dynamiquement, suite à erreur de saisie


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut Struts revenir sur la page courante, atteinte dynamiquement, suite à erreur de saisie
    bonjour à tous,

    Je voudrai, lorsque l'utilisateur saisi une donnée incorrecte, rester sur la page de saisie. Cette page est une page dynamique qui a été atteinte par un <html:link paramId......./> Donc avec un paramètre.
    C'est dans la classe Action que je récupère ledit paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String leParametre = request.getParameter("monparam")
    Et de la je questionne la bdd pour récupérer l'objet ayant comme identifiant le paramètre.

    Comment et ou dois-je définir le fait de rester sur la page "courante" lorsqu'il y a une mauvaise saisie?

  2. #2
    Membre très actif
    Inscrit en
    Novembre 2004
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 234
    Par défaut
    tu dois faire un return input dans ton action et puis dans le struts.xml
    action <result name= input>la page ou tu veux aller</result>
    mettre la page que tu veux aller.

  3. #3
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Je l'ai fait de la sorte et cela fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action path="/MonAction" 
                            type="LaClasseAction"
    			name="beanActionForm"
    			input="/laPageCourante.jsp">
    	<forward name="succes" path="/VueSucces.jsp"/>
    </action>
    Bien entendu, j'ai mis l'objet qui alimente la page "laPageCourante.jsp" dans le scope session. Voici la méthode execute qui m'ammène à la jsp sur laquelle je veux rester si l'utilisateur saisi de mauvaises informations.

    C'est la classe Action qui est définie dans la balise html:link.
    Je recupère l'objet en question grace au paramètre monparam que j'avais fourni dans la balise html:link.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
    
    		int code = Integer.parseInt(request.getParameter("monparam"));
    		Objet objet = dao.get(code);
    		request.getSession().setAttribute("OBJET",objet);
    		return mapping.findForward("VueDetailObjet");
    	}
    Je supprimerai "OBJET" de la session quand je n'en aurai plus besoin.

    Merci.

  4. #4
    Membre averti
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Par défaut
    dans le fichier struts-config.xml ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <forward name="echec" path="/tapage.jsp"/>
    et dans la méthode execute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // si le paramètre récupéré est incorrecte alors objet  = null; 
    if (objet == null){
       // tu crée ton message d'erreur pour l'afficher.
        return mapping.findForward("echec")
    }

  5. #5
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    ok, calojiro

    Dans ton cas tu exécutes les tests de premier niveau dans ta classe Action, alors qu'ils devraient plutôt être fait dans la classe ActionForm qui est faite pour ça. La méthode Validate contrôle justement que les valeurs saisies sont correctes:
    • pas d'injection sql
    • Les champs obligatoires sont renseignés
    • pas de texte, la ou on attend une valeur numérique
    • ...



    Ta méthode servirai plutôt à renvoyer vers la page, définie par le Forward "echec", s'il y a un échec au second niveau, pas d’acces à la base de données, ou un quelconque autre problème.

    En tout cas je vous remercie de vous être penché sur mon problème.

  6. #6
    Membre averti
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Par défaut
    désolé j'ai mal interprété (mauvaise saisie).
    pour la vérification de la bonne saisie de ton paramètre, la vérification passe au premier niveau et la méthode validate elle est faite pour ça, ma réponse c’était plutôt pour la cas ou ton objet est null (pas de valeur trouvée correspond à la valeur passé en param).

    n'oubliez pas de coché RÉSOLU

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

Discussions similaires

  1. revenir sur la page courante après une action
    Par Altenide dans le forum Struts 2
    Réponses: 8
    Dernier message: 08/04/2010, 11h41
  2. 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
  3. ne pas pouvoir revenir sur une page en cliquant sur précédent
    Par sagopa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/11/2006, 01h10
  4. Réponses: 15
    Dernier message: 22/08/2006, 00h33
  5. [Struts] résultat sur plusieurs pages
    Par agougeon dans le forum Struts 1
    Réponses: 15
    Dernier message: 13/10/2005, 08h28

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