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 :

Affichage page problème validator


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Par défaut Affichage page problème validator
    J'ai intégré Validator dans mon application, voici la configuration que j'utilise

    1- struts-config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <!-- Formulaires...-->
    <form-beans>
         <form-bean name="acINForm" type="main.forms.TransactionForm"/>
    </form-beans>
     
    <!-- Properties...-->
    <message-resources parameter="resources/application"/>
     
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames"
               value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>
    2- validation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <formset>
            <!-- Validation pour le formulaire acINForm -->
            <form name="acINForm">
                <field
                    property="codeINS"
                    depends="required">
                        <arg key="acIN.title.codeINS"/>
                </field>
            </form>
        </formset>
    3- TransactionForm
    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 class ContactForm extends ValidatorForm{
        /** Serial Version UID    */
        private static final long serialVersionUID = 1L;
        /** Champ du formulaire : codeINS*/
        private String codeINS = "";
        //  Constructeur par défaut de ContactForm()...
        public TransactionForm(){}
     
     
        public String getCodeINS() {
    	return codeINS;
        }
        public void setCodeINS(String codeINS) {
    	this.codeINS = codeINS;
        }
     }
    4- et la JSP : acin.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
    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
    48
    49
    50
    51
    52
     
    <div id=myform>
    		<h3><bean:message key="acIN.title.long"/></h3>
      			<table cellspacing="0">
      			<tbody>
      			<tr>
      				<td class="text"><bean:message key="acIN.title.codeOperation"/> :</td>
      				<td>
      					<html:select property="codeOperation" onchange="document.acINForm.submit();">	
      						<html:option value="selection"><bean:message key="acIN.option.selection"/></html:option>
    		  				<html:option value="10"><bean:message key="acIN.option.code10"/></html:option>
    			  			<html:option value="11"><bean:message key="acIN.option.code11"/></html:option>
    		  				<html:option value="21"><bean:message key="acIN.option.code21"/></html:option>
    		 				<html:option value="22"><bean:message key="acIN.option.code22"/></html:option>
    		  				<html:option value="23"><bean:message key="acIN.option.code23"/></html:option>
    		  				<html:option value="24"><bean:message key="acIN.option.code24"/></html:option>
    		  				<html:option value="30"><bean:message key="acIN.option.code30"/></html:option>
    		  				<html:option value="31"><bean:message key="acIN.option.code31"/></html:option>
    		  				<html:option value="40"><bean:message key="acIN.option.code40"/></html:option>
    	  				</html:select>	
    	  			</td>
    		  	</tr>
    		  	<c:if test="${acINForm.codeOperation!='selection' && acINForm.codeOperation!=null}">
    		  	<tr>	
    		  		<c:choose>
    		  			<c:when test="${requestScope.Historic=='OK'}">
    					  	<td class="text"><bean:message key="acIN.title.codeINS"/> :</td> 
    					  	<td>
    				  			<html:text property="codeINS" maxlength="6" size="30"/>
    						</td>
    					</c:when>
    				  	<c:when test="${acINForm.codeOperation=='10' && (requestScope.Editer1=='OK' || requestScope.Editer2=='OK')}">
    					  	<td class="text"><bean:message key="acIN.title.codeINS"/> :</td> 
    					  	<td>
    				  			<html:text property="codeINS" maxlength="6" size="30"/>
    						</td>
    					</c:when>
    					<c:otherwise>	
    						<td class="text"><bean:message key="acIN.title.codeINS"/> :</td> 
    					  	<td>
    				  			<html:text property="codeINS" maxlength="6" size="30" value=""/>
    						</td>
    					</c:otherwise>
    				</c:choose>
    			</tr>
    			<tr>
    				<td colspan="2"> 
    					<html:errors property="codeINS"/>
    				</td>
    			</tr>
                           ...
                           ...
    A la base TransactionForm étendait la classe ActionForm, mnt, en ajoutant la validation, j'étends la classe ValidatorForm, et j'ai 2 problèmes, ma page acin.jsp qui était incluse dans main.jsp s'affiche seule dans la page, et quand je change le menu, j'ai toujours le message d'erreur, même sans valider mon formulaire...


    Merci d'avance de votre aide...

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Par défaut
    Je pense que la question n'était pas assez claire,
    mon problème se présente comme ceci, j'ai un formulaire avec liste déroulante, quand je sélectionne une option, les champs que je dois remplir changent, dans à chaque choix dans la liste déroulante, j'appelle mon action sans que le bouton Valider soit appuyé, cette action me renvoie sur le même formulaire mais avec le code Opération que je teste afin de choisir les champs que je veux remplir...

    Mon problème est que la validation marche, mais pour chaque changement de menu dans la liste déroulante, chose que je ne veux pas, puisque le formulaire à ce moment la n'est pas encore validée, y'a t il moyen de dire que la validation ne doit être faite que si le bouton "valider" est appuyée

    Apparemment, la validation est faite pour chaque passage dans l'action concernée

    J'espère que j'étais clair

    Merci pour votre aide

  3. #3
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Dans ce cas, tu peux mettre validate à false dans le mapping de l'Action et faire appel à la validation dans l'Action, comme indiqué dans la FAQ.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Par défaut
    J'ai déja testé cette solution, mais ca ne marchait pas, la validation se fait à chaque modification de la liste déroulante,

    j'ai donc utilisé une validation classique dans l'actionForm (sans validator) tout en testant le bouton "valider" avant de tester les autres champs...

    ca marche très bien...

    Merci pour ta réponse c_nvy

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par reneguenon Voir le message
    J'ai déja testé cette solution, mais ca ne marchait pas, la validation se fait à chaque modification de la liste déroulante
    Ceci pouvait être éviter en conditionnant l'appel de la Validation dans l'Action, en testant par exemple la valeur du bouton submit, ou alors en utilisant une DispatchAction afin que la méthode appelée soit différente suivant que l'on sélectionne un élément dans la liste déroulante ou que l'on clique sur le bouton Valider.

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

Discussions similaires

  1. [tele2-NetGear]Résoudre problème de lenteur à l'affichage pages web
    Par georgeduke dans le forum Dépannage et Assistance
    Réponses: 1
    Dernier message: 08/02/2008, 13h56
  2. [web] Problème affichage page web
    Par benji2642 dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/04/2007, 02h00
  3. Problème affichage page web html ou htm
    Par metmac1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 08/03/2007, 21h15
  4. [HTML/CSS]Problème affichage page
    Par arnaud_verlaine dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 04/08/2006, 15h29
  5. Affichage page par page - problème STRING
    Par navis84 dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2006, 14h35

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