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 :

ResourceBundle avec Struts


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut ResourceBundle avec Struts
    Bonjour,

    Je travaille avec Struts pour la première fois et je suis débutant.
    J'ai fait un petit programme qui permet de valider des données entrées sur un formulaire, qui fonctionne bien et j'ai créé un fichier properties qui contient des messages d'erreurs.
    A présent, j'aimerais afficher les messages sur une page JSP moi-même.

    Voilà ce que j'ai fait dans la JSP mais rien ne s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:messages id="idMessage" property="title"  >
       <bean:write name="idMessage" />
    </html:messages>
    dans l'actionform =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActionErrors errors = new ActionErrors();
    errors.add("title", new ActionMessage("error.s titleField.range"));
    return errors;
    dans le toto.properties =>
    ........
    error.titleField.required=<li>no title</li>
    ..........
    Normalement ça devrait afficher le message "no title".

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

    Merci d'avance pour votre aide

  2. #2
    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
    Où as-tu mis le fichier properties et comment l'as-tu déclaré dans le struts-config.xml ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    essaye de remplacer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:messages id="idMessage" property="title"  >
       <bean:write name="idMessage" />
    </html:messages>
    par ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:bean key="error.titleField.required" />

  4. #4
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut ResourceBundle avec Struts
    Merci hamza_bba.
    Par contre, je n'ai pas trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:bean key="error.titleField.required" />
    j'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message  key="error.titleField.required" />
    merci c_nvy

    Chemin fichier properties => league\WebContent\WEB-INF\classes\toto.properties (league et le nom de mon petit programme)
    Déclaration struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto" key="toto" />
    Voilà le contenu de mon toto.properties
    error.yearField.required=<li>no year</li>
    error.yearField.range=<li>year no valide</li>
    error.seasonField.range=<li>no season</li>
    error.titleField.required=<li>no title</li>
    Là j'aimerais afficher "no title"

    Ce que je veux c'est afficher dans une page JSP, le contenu des message d'erreur qui se trouve dans toto.properties. Dans cet exemple je n'ai pris qu'un seul element title

    Merci d'avance.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Désolé je me suis trompé dans la balise, t'as raison la balise correcte est <bean:message key=""/>.

    En fait pour afficher tous les messages d'erreur qui t'empêche de fait ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean:message key="error.yearField.required"/>
    <bean:message key="error.yearField.range"/>
    ....
    Cependant je voyer pas l'intérêt de lister les erreurs comme ça, car concrètement les erreurs ce trouve généralement dans l'objet ErrorsAction .

  6. #6
    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
    Le fichier properties est au bon endroit et la déclaration dans le struts-config.xml est bonne.

    Normalement, pour afficher les erreurs de validation dans la jsp, il suffit d'utiliser le tag <html:errors/>.

    As-tu bien mis validate="true" dans le mapping de l'Action ?

    Sinon, je vois que tu as modifié le code de la méthode validate.
    Attention à mettre le bon nom de clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActionErrors errors = new ActionErrors();
    errors.add("title", new ActionMessage("error.titleField.required"));
    return errors;

  7. #7
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    oui je suis d'accord avec mais
    j'ai besion d'afficher le message "no title" a la page jsp
    pour cela
    j'ai bien taper
    <bean:message key="error.titleField.required"/>
    mais je vois le message
    Cannot find message resources under key org.apache.struts.action.MESSAGE
    possible que j'ai un probleme de lib
    voila les lib que j'ai coller
    commons-logging ,antlr,commons-beanutils,commons-digester,commons-fileupload-1.0,commons-logging,commons-validator,jakarta-oro,struts
    +++
    et j'ai bien mis
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    et as-tu mis aussi

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    si vous utilisé un EDI il tu indique rien comme erreurs syntaxique ?

  10. #10
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    voila le message d'erreur

    2 févr. 2009 14:40:15 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    pouvez vous nous montrer le contenu des fichiers : web.xml et struts-config.xml

  12. #12
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    web.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4"
    	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    	<display-name>league</display-name>
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
     
     
    	<welcome-file-list>
    		<welcome-file>index to.html</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    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
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
    	<form-beans>
    		<form-bean name="formleague" type="pack1.AddLeagueForm" />
    		<form-bean name="formldayneague"
    			type="org.apache.struts.validator.DynaValidatorForm">
    			<form-property name="seasond" type="java.lang.String" />
    			<form-property name="titled" type="java.lang.String" />
    			<form-property name="yearStrd" type="java.lang.String" />
     
    		</form-bean>
     
    	</form-beans>
     
     
    	<action-mappings>
    		<action path="/main" name="formleague" validate="true" input="/erreurs.do"
    			type="pack1.AddLeagueAction">
    			<forward name="response" path="/response.do" />
    		</action>
    		<action path="/erreurs" parameter="/erreurs.jsp"
    			type="org.apache.struts.actions.ForwardAction" />
    		<action path="/response" parameter="/response.jsp"
    			type="org.apache.struts.actions.ForwardAction" />
     
     
    		<action path="/maindyn" name="formldayneague" validate="true"
    			input="/erreursdyna.do" type="pack1.FormulaireAction">
    			<forward name="respon" path="/respon.do" />
    		</action>
    		<action path="/erreursdyna" parameter="/erreursdyna.jsp"
    			type="org.apache.struts.actions.ForwardAction" />
     
    		<action path="/respon" parameter="/respon.jsp"
    			type="org.apache.struts.actions.ForwardAction" />
     
     
    	</action-mappings>
     
    	<message-resources parameter="toto" key="toto" />
    	<message-resources parameter="eror" key="eror" /><!--
     
    	<plug-in className="org.apache.struts.validator.ValidatorPlugIn ">
    		<set-property value="pathnames"
    			property="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
    	</plug-in>
     
     
    --></struts-config>
    mais je ne pense pas que le probleme vien de ca car ca marche quand je suprime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="error.titleField.required"/>

  13. #13
    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
    En fait, je n'avais pas fait attention mais pour le premier fichier properties que tu définis dans le struts-config.xml, il ne faut pas mettre d'attribut key car c'est celui qui sera accédé par défaut :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<message-resources parameter="toto"/>
    	<message-resources parameter="eror" key="eror" />

  14. #14
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    mais
    j'ai une page qui affiche les erreur dans la quelle j'ai mis la reference de mon file properties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <action path="/main" name="formleague" validate="true" input="/erreurs.do"
    			type="pack1.AddLeagueAction">
    			<forward name="response" path="/response.do" />
    		</action>
    		<action path="/erreurs" parameter="/erreurs.jsp"
    			type="org.apache.struts.actions.ForwardAction" />
    dans la quelle je serai amener a mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:errors bundle="toto"/><br>
    donc je serai obliger de mettre
    <message-resources parameter="toto" key="toto" />
    sino j aurai le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     org.apache.jasper.JasperException: Cannot find message resources under key toto
    pour le premier probleme ca passe bravo pour toi patron

  15. #15
    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
    Je ne vois pas pourquoi tu tiens à préciser un attribut bundle dans le tag html:errors.

    Si tu définis ceci dans le struts-config.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto"/>
    lorsque tu coderas le tag <html:errors/> dans la jsp, il ira automatiquement chercher le libellé du message d'erreur dans le fichier toto.properties.

  16. #16
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    voila je veux simplement afficher les message d'erreur que je veux sur ma jsp welcom

    si je met par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto"/>
    dans struts-config
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="error.titleField.required"/>
    ds ma page jsp j'aurai le message que je cherche a ma page jsp welcom
    a savoir no title
    mais j'aurai apres un problem pour l'affichage des erreurs issu de mon formulaire qui nessecite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto" key="toto"/>
    j'espere que je me fait comprendre et merci de votre aide

  17. #17
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    pourquoi vous contentez pas d'utilisez :

    <html:errors /> comme t'as dit c_nvy

    si ya des erreurs dans la formulaire tous seront afficher avec la balise çi-dessus

  18. #18
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:errors bundle="toto"/><br>

    j l'utilse pour afficher les erreur depuis ActionErrors()
    a la page erreur.jsp et c'amarche pour recuperer les erreur
    la se que je veux et d'afficheé un seul message d'erreur qui n pas de relation avec ActionErrors(); depuis mon propertises
    comme une manier a montioné a l'utilisateur le type d'erreur sous la jsp ou se trouve le formulaire pour lui dire voila les erreur a éviter possible que c débile
    mais c just pour savoir comment faire pour afficher les message qui se trouve a file propertises
    je pense avec la balise en <message-resources parameter="toto" /> a pu tt a l'heur
    mais il faut que je change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto" key="toto" />
    to
    <message-resources parameter="toto"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<message-resources parameter="eror" key="eror" />
    et moi j'ai besion apres de recuperer les message d'erreur depuis ActionErrors

    sur la page erreur.jsp
    alors je suis amener a laisser key ="toto"?????

  19. #19
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    ecouter si vous fait comme ça ou est le probleme

    declarer ton message ressource comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto"  />
    pour recuperer les messages d'erreur de l'ActionErrors de ta page erreur.jsp utilise ça

    pour aficher l'erreur sans utiliser l'ActionErros tous simplement comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:message key="le cle que vous voulez affiché" />

  20. #20
    Membre averti
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Par défaut
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="toto"  />
    srtuts-config
    et
    erreur.jsp

    mon application remarche cad affiche des erreur depuis le formulaire
    mais quand j mis
    <bean:message key="lerror.titleField.required" />
    au niveau de la page welcom jsp
    message d'erreur



    2 févr. 2009 21:03:17 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    javax.servlet.jsp.JspException: Missing message for key "error.yeardField.range"

    ????

Discussions similaires

  1. [STRUTS][AJAX]Quel framework AJAX avec Struts
    Par woodwai dans le forum Struts 1
    Réponses: 24
    Dernier message: 12/03/2009, 16h19
  2. Comment utiliser plusieurs ResourceBundle avec struts-menu ?
    Par m.ben.hamida dans le forum Struts 1
    Réponses: 5
    Dernier message: 18/02/2008, 12h14
  3. [Struts] Problème avec struts-config.xml
    Par The_freeman dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/01/2006, 22h55
  4. Attribut "readonly" d'un INPUT avec Struts
    Par leywos dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/10/2005, 16h20
  5. Réponses: 2
    Dernier message: 20/08/2005, 19h23

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