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 :

<html:errors/> n'affiche pas les erreurs


Sujet :

Struts 1 Java

  1. #1
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut <html:errors/> n'affiche pas les erreurs
    Bonjour,

    J'ai développer en local avec MyEclipse une appli struts, dans lequel j'utilise des errors lors de la validation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public ActionErrors validate(ActionMapping mapping,
    			HttpServletRequest request) {
    	ActionErrors errors = new ActionErrors();		
     
            if (machin pas bon) { 
    	        errors.add(ActionErrors.GLOBAL_MESSAGE, 
    		        new ActionMessage("error.create.alreadyExists"));
            }
     
    	return errors;
    }
    Ce qui en locale marche très bien, ça affiche bien les erreurs quand les saisie de l'utilisateur sont mauvaise.

    Mais après déploiement, il s'avère que les erreurs ne s'affichent plus!!!

    Donc je pense que c'est un pb avec la balise <html:errors/>, peut être que j'ai mal configurer mon serveur de déploiement? ya une configuration particulière pour faire marcher les <html:errors/>?

  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
    C'est étrange ce qui t'arrive.

    Dis-moi, où est ton fichier de ressources ?
    Peux-tu montrer la balise message-resources du struts-config.xml ?

  3. #3
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    -_-'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <message-resources parameter="controller.local.ApplicationResources"/>
    c un chemin relatif, tu pense que ça peu venir de la?
    ya moyen d'ajouter une erreur avec une texte donner en dur et pas dans un fichier pour tester? du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    errors.add(ActionErrors.GLOBAL_MESSAGE, 
    		        new ActionMessage("blablabla"));

  4. #4
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut effectivement
    Dans le fichier de configuration de struts struts-config.xml tu dois specifier le chemin de votre fichier d'erreur avec l'extension ".properties"

    donc chaque msg possède un key le contenu de ce fichier est comme un map (clé,"le message")

    dans ta fonction de validation par exemple :

    erreurs.add("key",instance actionerror("le message")); // à verifier la synthaxe

  5. #5
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    J'ai rajouté l'extension l'extension ".properties" mais ça ne change rien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <message-resources parameter="controller.local.ApplicationResources.properties"/>
    et en locale mon code marche trés bien, donc je suis sur que mes association clé/msg passe bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    errors.add(ActionErrors.GLOBAL_MESSAGE, 
    	new ActionMessage("error.create.alreadyExists"));

  6. #6
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    je te demande de creer dans WEB-INF 1 repertoire "ressources" puis tu met dedans le fichier messageBundel.properties

    et dans le fichier struts-config.xml tu met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="messageBundel.properties"/>

    ok

    j'attends ta réponse

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut

    As tu utilisé après ton errors.add()

    la commande
    saveErrors(request, errors);

  8. #8
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    je te demande de creer dans WEB-INF 1 repertoire "ressources" puis tu met dedans le fichier messageBundel.properties
    j'ai essayer mais ça n'affiche toujours rien

    saveErrors(request, errors);
    eu.... non ^_^
    par contre j'ai essayer, mais cette fonction s'applique à une action, or là, je suis dans le validate du form.... et je ne sais pas comment accéder à l'action...

  9. #9
    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
    Sun03, c'est faux, il ne faut pas mettre l'extension .properties dans la balise message-resources.

    djidane39, ta définition du fichier des messages semble correcte.
    De toute façon, tu as bien dit que ça fonctionnait en local non ?
    donc cela signifie que ton ActionForm accède bien au fichier des messages.

    Tu déploies dans quel environnement ?

  10. #10
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    Oui en locale ça marche nikel!
    En, local c'est du struts 1.3

    Eux je déploie sur une machine virtuel avec Tomcat 5.5, java 1.6 et pour la version de struts, 1.3.8.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 75
    Points
    75
    Par défaut
    Bonjour, j'ai aussi <html:errors/> qui n'affiche pas les erreurs.

    Voici mon environnement :
    JBoss 4.2.2
    Struts 1.3.8
    Eclipse Europa

    Voici mon struts-config.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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    <struts-config>
    	<form-beans>
    		<form-bean name="frmPersonne" type="personne.FormulaireBean" />
    	</form-beans>
    	<action-mappings>
    		<action forward="/WEB-INF/vues/main.html" path="/main" name="frmPersonne" scope="session" validate="true" input="/erreurs.do" />
    		<action forward="/WEB-INF/vues/erreurs.personne.jsp" path="/erreurs" />
    		<action forward="/WEB-INF/vues/reponse.personne.jsp" path="/reponse" />
    		<action forward="/WEB-INF/vues/formulaire.personne.jsp" path="/formulaire" />
    	</action-mappings>
    	<message-resources parameter="ressources.personneressources" />
    </struts-config>
    Voici le fichier C:\Program Files\eclipse\workspace\tests-struts\WebContent\WEB-INF\classes\ressources\personneressources.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    personne.formulaire.nom.vide=<li>Vous devez indiquer votre nom</li>
    personne.formulaire.age.vide=<li>Vous devez indiquer votre age</li>
    personne.formulaire.age.incorrect=<li>l'âge {0} est incorect</li>
     
    errors.header=<ul>
    errors.footer=</ul>

    Voici mon form-bean :
    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
    package personne;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
     
    public class FormulaireBean extends ActionForm {
    	private static final long serialVersionUID = 1L;
    	private String nom = null;
    	private String age = null;
    	public String getNom() {
    		return nom;
    	}
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	public String getAge() {
    		return age;
    	}
    	public void setAge(String age) {
    		this.age = age;
    	}
     
    	@Override
    	public ActionErrors validate(ActionMapping mapping,
    			HttpServletRequest request) {
    		ActionErrors erreurs = new ActionErrors();
    		if( nom == null || nom.trim().equals(""))
    			erreurs.add("nomvide", new ActionMessage("personne.formulaire.nom.vide"));
    		if( age == null || age.trim().equals("")){
    			erreurs.add("agevide", new ActionMessage("personne.formulaire.age.vide"));
    		}else{
    			if(!age.matches("^\\s*\\d+\\s*$")){
    				erreurs.add("ageincorect", new ActionMessage("personne.formulaire.age.incorrect",age));
    			}
    		}
     
    		return erreurs;
    	}
     
     
    }
    et voici ma page d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <html>
    	<head>
    		<title>Personne</title>
    	</head>
    	<body>
    		<h2>Les erreurs suivantes se sont produites</h2>
    		<html:errors />
    		<html:link page="/formulaire.do">Retour au formulaire</html:link>
    	</body>
    </html>
    Le problème est que je vois bien la page d'erreur quand validate fait son boulot mais aucune erreur n'est affichée...




    Je vous remercie.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    Une réponse pour lionrouge malgré la date du post. Si ça peut aider la communauté.

    Au vu de la balise message-ressources dans le fichier struts-config.xml, c'est le fichier personneressources.properties qui n'est pas au bon endroit de l'application.

    Au lieu de :
    C:\Program Files\eclipse\workspace\tests-struts\WebContent\WEB-INF\classes\ressources\personneressources.properties

    il faut le mettre dans:
    C:\Program Files\eclipse\workspace\tests-struts\WebContent\ressources\personneressources.properties

Discussions similaires

  1. PHP n'affiche pas les erreurs.
    Par diabli73 dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2014, 10h26
  2. [ZF 1.11] Element file formulaire qui n'affiche pas les erreurs
    Par absot dans le forum Zend_Form
    Réponses: 3
    Dernier message: 25/11/2011, 10h52
  3. [Cygwin] g++ n'affiche pas les erreurs de compilation.
    Par Letinono dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 02/04/2011, 15h53
  4. [1.x] Formulaire mal rempli qui n'affiche pas les erreurs
    Par bahamut100 dans le forum Symfony
    Réponses: 5
    Dernier message: 03/06/2010, 00h21
  5. [Wamp] [MAMP] PHP n'affiche pas les erreurs, même avec display_errors On
    Par Galdon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 01/02/2010, 18h33

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