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-Layout][layout:date] problème avec l'action


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 22
    Points
    22
    Par défaut [Struts-Layout][layout:date] problème avec l'action
    Bonjour,

    J'utilise la bibliothéque le tag layout:date de la bibliothéque layout. Lorsque je sélectionne une date et que j'appui sur mon boutton pour valider cette date, je vais directement sur ma page indiquée lors d'un success sans que ma classe action se déclenche.
    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
     
     <action
              path="/Test"
              type="com.ambadmin.action.Test"
              name="dateForm"
              scope="request">
              <forward
                  name="success"
                  path="/pages/Test.jsp"/>
              <forward
                  name="error"
                  path="/index.jsp"/>
          </action>
    Mon probléme est donc que dés ke j'appui sur mon boutton "Submit" je vais sur la page Test.jsp sans rentrer dans "com.ambadmin.action.Test".
    Voici ma page jsp ou se trouve le calendrier ainsi que mon boutton et mon dateForm.

    page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       <div class="sec_descr">
       <layout:form  action="/Test"> 
     		 <layout:skin /> 
    		<script src="/ambadmin/config/javascript.js"></script>
       		<layout:date key="Date" property="date"  styleClass="LABEL" mode="E,R,R"/>
        	 <layout:submit value="Verif Ajout"></layout:submit>
        	 <%--<layout:button value="Verif Ajout" onclick="document.location.href = '/ambadmin/Test.do'"/>--%>
     </layout:form> 
      </div>
    dateForm:
    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
     
    public class DateForm extends ValidatorForm {
     
    	private String date ;
     
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
    		ActionErrors erreurs ;
    		System.out.println("validate");
    		erreurs = new ActionErrors();
    		if(date==null || date.trim().equals("")){
    			erreurs.add("Saisissez une date",new ActionError("champ date vide"));
    		}//end if
     
    		return erreurs;
     }//end validate
    	/**
             * @return the date
             */
    	public String getDate() {
    		return date;
    	}
     
    	/**
             * @param date the date to set
             */
    	public void setDate(String date) {
    		this.date = date;
    	}
    }

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Premièrement, ta classe DateForm hérite de ValidatorForm.
    Or, vu ce que tu as codé dans la méthode validate, tu n'utilises pas le Validator.
    Remplace donc ValidatorForm par ActionForm.

    Deuxièmement, je ne sais pas quelle version de Struts tu utilises mais il faut savoir que la classe ActionError est deprecated depuis la 1.2.0.
    Il faut donc la remplacer par ActionMessage, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	erreurs.add("Saisissez une date",new ActionMessage("champ date vide"));
    Enfin, dans le mapping de l'Action, il faut préciser l'attribut input pour lui indiquer sur quelle page il doit aller en cas d'erreur de validation :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     <action
              path="/Test"
              type="com.ambadmin.action.Test"
              name="dateForm"
              scope="request"
              validate="true" input="/index.jsp">
              <forward
                  name="success"
                  path="/pages/Test.jsp"/>
              <forward
                  name="error"
                  path="/index.jsp"/>
          </action>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/06/2009, 22h39
  2. Réponses: 2
    Dernier message: 27/08/2007, 14h21
  3. [Struts-Layout][layout:date] attribut property
    Par nikoo_27 dans le forum Struts 1
    Réponses: 9
    Dernier message: 02/11/2006, 14h38
  4. Réponses: 1
    Dernier message: 29/09/2006, 12h00
  5. [struts layout] layout:date
    Par agougeon dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/03/2006, 15h12

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