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 :

[Validation] plusieurs méthodes dans l'Action pas toutes à valider


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 92
    Par défaut [Validation] plusieurs méthodes dans l'Action pas toutes à valider
    Bonjour,

    Dans mon appli j'ai plusieurs méthodes au sein d'une même Action.
    Je souhaites mettre en place des validateurs par annotation sur certaines de ces méthodes mais pas sur toutes.

    Typiquement dans mon Action j'ai les méthodes :
    - ajouter()
    - supprimer()
    - visualiser()
    - editer()

    Les contrôles à effectuer sur le formulaire ne sont donc pas les mêmes...
    pour la méthode ajouter() j'aimerais contrôler que mes champs sont présents
    pour la méthode visualiser() j'aimerais ne faire aucun contrôle
    etc...

    Des idées ???

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 95
    Par défaut
    A priori pour la visualisation y a pas de pb.
    Pour ton edition tu fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
    	<field name="nomChamps">
    		<field-validator type="requiredstring">
    			<message key="validation.nomchamps.required" />
    		</field-validator>
    	</field>
    </validators>

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Par défaut
    salut,

    lors d'une validation pa

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 72
    Par défaut
    salut,

    lors d'une validation par annotation, lorsque la classe contient plusieur méthode dont certaine ne sont pas à valider j'annote les méthodes avec un @SkipValidation, la doc : http://struts.apache.org/2.x/struts2...alidation.html

  5. #5
    Membre chevronné 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
    Par défaut
    Si tu a un seul fichier de validation par methode, il n'y a pas de problemes.

    Exemple :
    Ta classe qui contient les methodes : MonAction.java
    Ton action pour la methode ajouter() par exemple : AjouterAction

    --> Le nom de ton fichier de validation devient :
    MonAction-AjouterAction-validation.xml

    Dans ce cas, la validation se fera uniquement lorsque l'action AjouterAction est apellée. et le tour est joué.

    Tu crée autant de fichier de validation avec les champs que t'as envie de vérifier que tu as de methode différentes.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 92
    Par défaut
    Désolée... Je ne suis pas sure d'avoir tout compris car ça ne fonctionne toujours pas...

    Voila précisément ce que j'ai fait :
    J'ai donc 2 méthodes d'ajout dans ma classe Action :

    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
     
    public class MaClasseAction extends ActionSupport { 
     
    	public String ajouterEtape1() throws Exception {
    		String target = SUCCESS;
    		.../...
    		return target;
    	}
     
    	public String ajouterEtape2() throws Exception {
    		String target = SUCCESS;
    		.../...
    		return target;
    	}
     
     
    	/* champs du formulaire */
    	private String code;
    	private String libelle;
     
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code= code
    	}
     
    	public String getLibelle() {
    		return libelle;
    	}
    	public void setLibelle(String libelle) {
    		this.libelle= libelle;
    	}
    }
    Dans AjouterEtape1() le champ code est obligatoire pas le champ libellé.
    Dans AjouterEtape2() les champs code et libellé sont obligatoires.

    => Je crée 2 fichiers de validations :

    MaClasseAction-ajouterEtape1-validation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <!DOCTYPE validators PUBLIC 
    "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
        <field name="code">
            <field-validator type="requiredstring">
                <message>Le code est obligatoire</message>
            </field-validator>
        </field>
    </validators>
    MaClasseAction-ajouterEtape2-validation.xml :
    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
     
    <!DOCTYPE validators PUBLIC 
    "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
        <field name="code">
            <field-validator type="requiredstring">
                <message>Le code est obligatoire</message>
            </field-validator>
        </field>
        <field name="libelle">
            <field-validator type="requiredstring">
                <message>Le libellé est obligatoire</message>
            </field-validator>
        </field>
    </validators>
    J'ai faux où ???

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 92
    Par défaut ça marche !!!
    Alors j'ai trouvé mon erreur !

    Qui provenait du struts.xml, il fallait définir 1 action name par methode :

    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
     
    <struts>
     
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="false" />
     
        <package name="example" namespace="/example" extends="struts-default">
     
            <action name="ajouterEtape1" class="example.MaClasseAction" method="ajouterEtape1">
                <result>/example/Test.jsp</result>
                <result name="input">/example/Test.jsp</result>
            </action>
     
            <action name="ajouterEtape2" class="example.MaClasseAction" method="ajouterEtape2">
                <result>/example/Test.jsp</result>
                <result name="input">/example/Test.jsp</result>
            </action>
     
        </package>
     
    </struts>
    et ensuite dans ma JSP :

    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
     
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@taglib uri="/struts-tags" prefix="s"  %>
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Test</title>
        <s:head/>
    </head>
    <body>
     
    <s:form action="/example/ajouterEtape1.action">
        <s:textfield label="Code" name="code"/><br>
        <s:textfield label="Libelle" name="libelle"/><br>
        <s:submit value="ajouter1" action="ajouterEtape1"/>
        <s:submit value="ajouter2" action="ajouterEtape2" />
    </s:form>
    </body>
    </html>

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

Discussions similaires

  1. Plusieurs méthodes dans une "action" struts.xml
    Par VinceCBA dans le forum Struts 2
    Réponses: 0
    Dernier message: 25/10/2011, 16h26
  2. [Débutant] écrire dans excel mais pas toutes les lignes
    Par lauri-anne dans le forum MATLAB
    Réponses: 2
    Dernier message: 14/07/2010, 11h35
  3. [1.x] Création de plusieurs objets dans mon action.class.php
    Par lijko dans le forum Symfony
    Réponses: 2
    Dernier message: 30/12/2007, 13h37
  4. [MySQL] je n'arrive pas a valider des sites dans le phpadmin
    Par maya24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/09/2007, 18h48
  5. Rediriger plusieurs url dans le "Action"
    Par Alexino2 dans le forum Langage
    Réponses: 8
    Dernier message: 16/03/2007, 10h50

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