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 :

problème de validation avec DispachAction


Sujet :

Struts 1 Java

  1. #21
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonsoir,
    la technique avec getValidationKey (que j'ai explique avant) ne te convient pas ?

    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
    public class BaseForm extends ValidatorActionForm {
     
    	 public String getValidationKey(ActionMapping mapping, HttpServletRequest request)
    	    {
     
    	 		String dispatch = request.getParameter("dispatch");
    	 		if (StringUtils.isEmpty(dispatch)) {
    	 			// Le dispatch n'est pas defini VALIDATOR standard
    	 			return mapping.getAttribute();
    	 		}
    	 		// Le dispatch est definit construction de la cle
    	 		// avec le dispatch pour rechercher dans validation.xml
    	 		// le form : 
    	 		// <form name="myPath?dispatch=..."
    	        return mapping.getAttribute() + "?dispatch=" + dispatch;
    	    }
    }

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    salut

    j'ai compris ta methode mais je crois que ca va pas marcher avec mon probleme car moi j'ai

    pour chaque action contexte/nom de l'action

    merci

  3. #23
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonjour
    que signifies tu par contexte?
    J'ai vue que tu avais mis rechercheVersions dans le parameter de ton action.
    Tu devrais mettre dispatch, comme ca toute tes actions aurront la signature
    rechercheVersions.do?dispatch=save

    Deuxiemement tu devrais mettre validate a false, sinon des que tu appelles ton action le validate sera decvlenche (il faut appeler validate dans ton action).

    Une fois que tu as fait ca tu met le code getValidationKey (comme je te l'ai propose) et apres dans ton validation.xml tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="rechercheCourrierForm?dispatch=save" >
    ... validation pour le formulaire rechercheVersions avec la methode save
     
    <form name="rechercheCourrierForm?dispatch=create" >
    ... validation pour le formulaire rechercheVersions avec la methode create
    Angelo

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    salut,

    moi je travaille sur une appli deja commence voici comme ils ont procede:

    ils (une equipe qua travaille sur l'appli avant moi) ont cree une classe BaseAction extends MappingDispatchAction ou ile ont fait l'appel a la methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try {
                // Appel à la methode de la sous classe à executer
                actionForward = dispatchMethod(mapping, form, request, response, mapping
                        .getParameter());
    chaque classe Action etend la classe BaseAction ou ils deffinissent les methodes à executer exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public ActionForward nouvelleVersion(ActionMapping mapping,
    			ActionForm form, HttpServletRequest request,
    			HttpServletResponse response)
    et dans struts-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <action path="/nouvelleVersion"
    			type="ccomptes.sami.courrier.presentation.action.CourrierAction"
    			name="rechercheCourrierForm" scope="request"
    			parameter="nouvelleVersion" validate="true"
    			input="/prepareRechercheVersions.do"
    			habilitations="habilitationsRestantesParametreReference">
    			<forward name="success"
    				path="administration.recherche.courrier.simple" />
    		</action>
    en verite je ne voi pas tres bien comment ils ont procede.

    merci bien pour tes reponces

  5. #25
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    D'apres ce que je comprends, tu appelles tes urls de la facon suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    http://..../nouvelleVersion.do?nouvelleVersion=save
     
    http://..../nouvelleVersion.do?nouvelleVersion=create
    Si c'est ca, tu peux utiliser mapping.getParameter() en tant que dispatch (j'ai pas tester mais ca donnerait ) :

    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 String getValidationKey(ActionMapping mapping, HttpServletRequest request)
    	    {
     
    	 		String dispatch = mapping.getParameter();
    	 		if (StringUtils.isEmpty(dispatch)) {
    	 			// Le dispatch n'est pas defini VALIDATOR standard
    	 			return mapping.getAttribute();
    	 		}
    	 		// Le dispatch est definit construction de la cle
    	 		// avec le dispatch pour rechercher dans validation.xml
    	 		// le form : 
    	 		// <form name="myForm?dispatch=..."
    	        return mapping.getAttribute() + "?dispatch=" + dispatch;
    	    }
    }
    Angelo

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    salut,
    je viens de trouver une tres bonne ressource expliquant comment fonctionne la classe MappingDispatchAction

    en gros elle permet de faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <action path="/saveSubscription" 
             type="org.example.SubscriptionAction" 
             name="subscriptionForm" 
             scope="request" 
             input="/subscription.jsp" 
          parameter="nom de la methode"/>
    et dans la classe de l'action struts qui herite de MappingDispatchAction

    tu definis la methode nom de la methode. Faisant comme ca l'url sera
    .../saveSubscription.do

  7. #27
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut
    Bonjour ,
    j'ai rencontré le meme problème et j'ai définit une classe BaseDispatchForm où j'ai surcharger la méthode getValidationKey() comme vous l'avez indiqué
    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
     
        public String getValidationKey(ActionMapping mapping, HttpServletRequest request){
     
          String dispatch = mapping.getParameter();                  
     
          System.out.println("dispatch : "+ dispatch);
          if (StringUtils.isEmpty(dispatch)) {
              // Le dispatch n'est pas defini VALIDATOR standard
              return mapping.getAttribute();
          }
          // Le dispatch est definit construction de la cle
          // avec le dispatch pour rechercher dans validation.xml
          // le form : 
          // <form name="myForm?dispatch=..."
          return mapping.getAttribute() + "?dispatch=" + dispatch;
        }
    puis j'ai définit mon formulaire qui etent le BaseDispatchForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class FinancementDispatchForm extends BaseDispatchForm{
     
        private Long id; ....
    le struts-config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <action path="/editFinanceFormMethodes"
                type="action.financement.EditFinanceFormMethodes" name="financementDispatchForm" 
                input="tiles.financementEditForm" validate="false" scope="request"  parameter="dispatch">
     
          <forward name="cancel" path="/welcomeForm.do" redirect="false"/>  
          <forward name="validerChercheur" path="validerChercheurAction.do" redirect="true"/>
          <forward name="success" path="/financementEditForm.do" redirect="true"/>
    le validation.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="financementDispatchForm?methCode=ajouterChercheur">
          <field property="pct" depends="required">
            <arg0 key="tatatat"/>
          </field> 
          <field property="id" depends="required">
            <arg0 key="totototo"/>
          </field> 
        </form>
    mais la méthode getValidationKey ne s'execute pas
    ce qui est bizzar c'est qu'il me sort aucun message d'erreur ????????
    merci pour vos proposition

Discussions similaires

  1. Problème de validation avec selectOneListbox
    Par khaoula_14_05 dans le forum JSF
    Réponses: 2
    Dernier message: 05/05/2008, 10h38
  2. [XHTML] Problème de validation avec javascript
    Par HwRZxLc4 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 16/12/2007, 00h13
  3. [DOM] Problème de validation avec un Schema et javax.xml.validation
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 29/08/2007, 12h08
  4. Problème de validation avec le clientsocket
    Par stroumfs dans le forum Delphi
    Réponses: 2
    Dernier message: 03/11/2006, 18h41
  5. Réponses: 4
    Dernier message: 25/10/2006, 08h57

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