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 2] Afficher un message sur un champ incomplet


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Points : 61
    Points
    61
    Par défaut [Struts 2] Afficher un message sur un champ incomplet
    Bonjour,

    Je suis débutant en JEE et je viens de commencer à utiliser Struts 2.

    J'aimerais, lorsque par exemple un client essaye de valider ses informations dans un formulaire, qu'un message s'affiche devant un champ, lorsqu'il a oublié de le remplir:

    client.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <table>
    <s:form action="register" method="post">
    <tr>
       <td>Nom: </td>
       <td><s:textfield id="name" name="name"></s:textfield></td>
       <td><s:property value="erreurs['name']"/></td>
    </tr></table>...
    ClientAction.java
    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 String enregistrer(){
            String reponse="";
            try{
                reponse=validerName(name);
            }catch(Exception e){
                erreurs.put(name, e.getMessage());
            }
            return reponse;
        }
    private String validerName(String nom) throws Exception{
            if(nom.equalsIgnoreCase("")){
                return "input";
            }else
            return "success";
        }
    ...
    Alors quand j'exécute le code affiché ci-dessus et je valide sans remplir le champ "nom", il n'affiche pas le message devant le champ nom.

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Il t'affiche quoi ?

    Déja renommes ta methode validerName en validate. Et dis nous ce que ça donne.
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Points : 61
    Points
    61
    Par défaut
    Il m'affiche la page client.jsp mais j'aimerais qu'il m'affiche l'erreur devant le champ nom.

    Pour la méthode, je ne sais pas pourquoi je devrais changer son nom mais je l'ai fais et ça n'a rien changé.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Points : 61
    Points
    61
    Par défaut
    Toujours personne pour me guider ? :/

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par xoftob Voir le message
    Il m'affiche la page client.jsp mais j'aimerais qu'il m'affiche l'erreur devant le champ nom.

    Pour la méthode, je ne sais pas pourquoi je devrais changer son nom mais je l'ai fais et ça n'a rien changé.
    Je t'ai demandé de changer de nom car les intercepteurs Struts executent la methode validate (validateEnregistrer, ...) t avant d'executer enregistrer. C'est dans la doc struts je crois.
    Montres nous ton fichier struts.xml et le code source généré de ta page.
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par pracede2005 Voir le message
    Je t'ai demandé de changer de nom car les intercepteurs Struts executent la methode validate (validateEnregistrer, ...) t avant d'executer enregistrer. C'est dans la doc struts je crois.
    Montres nous ton fichier struts.xml et le code source généré de ta page.
    Bonjour pracede2005,

    Bon voici le fichier struts.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
    <?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="true" />
    	<package name="jsp" namespace="/jsp" extends="struts-default">
    		<action name="register" class="ma.actions.ClientAction" method="enregistrer">
            	<result name="success" >/jsp/afficherClient.jsp</result>
            	<result name="input">/jsp/client.jsp</result>  
        	</action>  
    	</package>
    </struts>
    Voici le code de Client.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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix ="s" uri="/struts-tags" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Ajouter Client</title>
    </head>
    <body>
    	<table>	
    		<s:form action="register" method="post">
    		<tr>
    			<td><h3>Créer un client</h3></td>
    		</tr>
    		<tr>
    			<td>Nom: </td>
    			<td><s:textfield id="name" name="name"></s:textfield></td>
    			<td><s:property value="erreurs['name']"/></td>
    		</tr>
    </s:form>
    	</table>
    </body>
    </html>
    Voici le code de ClientAction.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
    package ma.actions;
     
    import java.util.HashMap;
    import java.util.Map;
     
    import ma.hibernate.Client;
     
    import com.opensymphony.xwork2.ActionSupport;
     
    public class ClientAction extends ActionSupport{
     
    	private String name;
    	private Map<String, String> erreurs = new HashMap<String, String>();
     
            public String getName() {
    		return name;
    	}
     
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	public Map<String, String> getErreurs() {
            return erreurs;
            }
     
            public String enregistrer(){
    		String reponse="";
    		try{
    			reponse=validate(name);
    		}catch(Exception e){
    			erreurs.put(name, e.getMessage());
    		}
    		return reponse;
    	}
     
    	private String validate(String nom) throws Exception{
    		if(nom.equalsIgnoreCase("")){
    			return "input";
    		}else
    		return "success";
    	}
    }

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Bonsoir,

    Concernant ton problème, il s'agit de validation Struts 2.

    Or, en Struts 2 il y a plusieurs manière de faire de la validation de formulaire :
    1. Validation par Annotations
    2. Validation par xml
    3. Validation via "valide"


    Ce sont les méthodes les plus courante.

    Remarque : Il faut impérativement faire attention au fait d'avoir l'interceptor de validation définit dans la pile des interceptors.

    Je te donnes différents liens qui pourront sûrement t'aider avec la validation de formulaire

    http://struts.apache.org/2.0.14/docs...nnotation.html

    http://struts.apache.org/2.3.4/docs/...alidation.html

    http://struts.apache.org/2.2.3/docs/...using-xml.html

    http://struts.apache.org/2.0.14/docs...nnotation.html

    Si tu as d'autres questions n'hésite surtout pas. J'essayerai d'y répondre dans la mesure du possible.

Discussions similaires

  1. Afficher un message sur l output
    Par id301077 dans le forum SAS Base
    Réponses: 4
    Dernier message: 05/11/2008, 17h17
  2. afficher des messages sur la fenetre
    Par daff86 dans le forum Tkinter
    Réponses: 3
    Dernier message: 24/04/2008, 19h57
  3. Réponses: 5
    Dernier message: 18/07/2006, 15h32
  4. [Struts] Comment afficher des messages de confirmation
    Par vallica dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/04/2006, 14h25
  5. Réponses: 9
    Dernier message: 24/03/2004, 12h15

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