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[ResourceBundle]


Sujet :

Struts 1 Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut struts[ResourceBundle]
    je voulais appliquer la methode décrite dans faq de struts,qui est la suivante:
    Comment factoriser plusieurs actions réalisables sans JavaScript ? : Le LookupDispatchAction
    pour cela j'ai fait une page jsp qui contient deux bouton,une action qui m'indique sur quel bouton j'ai clicke.
    bref,voila 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <struts-config>
     
     <data-sources/>
     
     <form-beans>
     
      <form-bean name="TestBean" type="Bean.TestBean"/>
     
     </form-beans>
     
     <global-exceptions/>
     
     <global-forwards>
     
      <forward name="start" path="/pages/entrer.jsp"/>
     
     </global-forwards>
     
     <action-mappings>
     
      <action name="TestBean" parameter="submit" path="/test"
     
       scope="request" type="Action.TestAction">
     
       <forward name="goto_resultat" path="/pages/resultat.jsp"/>
     
      </action>
     
     </action-mappings>
     
     <controller/>
     
    </struts-config>
    pour ma page entrer.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
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
     
     
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <html:html>
     
    <head>
     
    <title>Document sans titre</title>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    </head>
     
     
     
    <body>
     
    <p>Clicker sur un Boutton pour voir le message qui s'affichera sur la console et sur la page resultat.jsp:</p>
     
    <p>&nbsp; </p>
    <html:form action="/test.do" >
    <html:submit >
    <bean:message key="button.add" />
    </html:submit >
    <html:submit >
    <bean:message key="button.delete" />
    </html:submit >
    </html:form>
     
     
    </body>
     
    </html:html>
    enfin pour l'action TestAction:

    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
    package Action;
     
    import java.io.*;
    import java.util.*;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.action.DynaActionForm;
    import org.apache.struts.util.MessageResources;
    import org.apache.struts.actions.*;
    public  class TestAction extends LookupDispatchAction {
     
        // Global Forwards
        public static final String GLOBAL_FORWARD_start = "start";
     
        // Local Forwards
        private static final String FORWARD_goto_resultat = "goto_resultat";
     
     
     
    protected Map getKeyMethodMap() 
    {
       Map map = new HashMap();
       map.put("button.add", "add");
       map.put("button.delete", "delete");
      return map;
    }
     
    public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) 
      throws IOException, ServletException 
      { 
      System.out.println("click sur le bouton add");
       return mapping.findForward(FORWARD_goto_resultat);
       }
    public ActionForward delete(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) 
      throws IOException, ServletException
       { 
       System.out.println("click sur le bouton delete");
       return mapping.findForward(FORWARD_goto_resultat);
        }
     
    }
    mon programme se compile mais au lieu d'avoir ma page entrer.jsp j'obtiens

    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
    org.apache.jasper.JasperException: Cannot find message resources under key org.apache.struts.action.MESSAGE
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    	at java.lang.Thread.run(Thread.java:534)
    je crois que le problème réside au niveau de la declaration d'un resourcebundle au niveau de struts-config.xml chose que je n'arrive pas encore à manipuler
    si qqn peut m'expliquer le mecanise avec une partie de code,je serai ravi
    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    dans ta JSP tu utilise un fichier de ressource pour les labels des boutons.

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:message key="button.add" />
    Il te faut donc un fichier de ressource qui definira ces labels.
    Par exemple un fichier MessageRessources.properties contenant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    button.add=texteBouton
    et pour pouvoir l'utiliser il suffit de rajouter dans le struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="MessageResources" />

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut struts[ResourceBundle]
    merci pour ton aide mais j'ai encore un petit problème. :
    sachant que je garde toujours la même classe TestAction et la même page entrer.jsp
    mon fichier struts-config.xml est devenu:

    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
    <struts-config>
     
     <data-sources/>
     
     <form-beans>
     
      <form-bean name="TestBean" type="Bean.TestBean"/>
     
     </form-beans>
     
     <global-exceptions/>
     
     <global-forwards>
     
      <forward name="start" path="/pages/entrer.jsp"/>
     
     </global-forwards>
     
     <action-mappings>
     
      <action name="TestBean" parameter="submit" path="/test"
     
       scope="request" type="Action.TestAction">
     
       <forward name="goto_resultat" path="/pages/resultat.jsp"/>
     
      </action>
     
     </action-mappings>
     
     <controller/>
     
     <message-resources parameter="ApplicationRessources"/>
     
    </struts-config>
    à l'execution j'obtiens ma page jsp avec les deux bouton add et delete
    mais lorsque je clique sur un bouton j'obtiens:


    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
    javax.servlet.ServletException: Request[/test] does not contain handler parameter named submit
    	at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:199)
    	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    	at java.lang.Thread.run(Thread.java:534)
    le probleme est maintenant quelque part dans l'action


  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Ton erreur est due au fait que tu défini un parametre à transmettre à ton action dans ton fichier struts-config.xml mais que tu ne le défini pas dans ta jsp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <action name="TestBean" parameter="submit"
    pour le transmettre automatiquement

    <html:hidden name="submit" value="valeur"/>

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    pour le definir dans la jsp que dois je faire stp?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    ajoute ceci (en remplacant la valeur évidement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:hidden name="submit" value="valeur"/>

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    mais html:hidden doit avoir un attribut property obligatoire
    et pour la ligne que vous m'avez donner ,je la mettrai ou?
    merci

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    votre ligne de code ne résoud pas encore le problème
    est ce qu'on peut le faire autrement? :

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Ton champ hidden doit être inclu dans la balise form pour etre envoyé automatiquement dans la request.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html:form action="/test.do" >
    <input type ="hidden" name="submit" value=""/> 
    <html:submit >
    <bean:message key="button.add" />
    </html:submit >
    <html:submit >
    <bean:message key="button.delete" />
    </html:submit >
    </html:form>

  10. #10
    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
    Pour le champ hidden, il vaut mieux le coder comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:hidden property="submit" value="add"/>
    Mais il me semble que dans le cas d'une LookupDispatchAction, le nom du paramètre doit être codé dans l'option property de la balise html:submit.

    Cependant, rajawi ayant choisi "submit" comme paramètre, celui-ci étant la propriété par défaut du html:submit, il n'est normalement pas nécessaire de le coder.

    Donc, sincèrement, je ne vois pas ce qui cloche dans ton code rajawi.

    Eventuellement, tu pourrais peut-être tester en prenant un autre nom de paramètre que submit et en rajoutant property="nouveaunomde parametre" dans chaque balise html:submit.

    J'aimerais savoir si le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Request[/test] does not contain handler parameter named submit
    tu l'as eu en codant un champ hidden ou pas ?
    Si oui, il serait bien de tester sans.

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    j'ai essayé tous ces trucs là mes aucun ne résoud le problème

    maintenant avec ce nouveau code j'obtiends une nouvelle erreur

    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
    <struts-config>
     
     <data-sources/>
     
     <form-beans>
     
      <form-bean name="TestBean" type="Bean.TestBean"/>
     
     </form-beans>
     
     <global-exceptions/>
     
     <global-forwards>
     
      <forward name="start" path="/pages/entrer.jsp"/>
     
     </global-forwards>
     
     <action-mappings>
     
      <action input="/pages/entrer.jsp" name="TestBean" parameter="sub"
     
       path="/test" scope="request" type="Action.TestAction">
     
       <forward name="goto_resultat" path="/pages/resultat.jsp"/>
     
      </action>
     
     </action-mappings>
     
     <controller/>
     
     <message-resources parameter="ApplicationRessources"/>
     
    </struts-config>
    entrer.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
    <html:html  >
     
    <head>
     
    <title>Document sans titre</title>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    </head>
     
     
     
    <body>
     
    <p>Clicker sur un Boutton pour voir le message qui s'affichera sur la console et sur la page resultat.jsp:</p>
     
    <p>&nbsp; </p>
    <html:form action="/test.do"   >
     
     
    <html:submit   >
    <bean:message key="button.add"  />
    </html:submit >
     
     
    </html:form>
     
     
    </body>
     
    </html:html>
    pour mon action TestAction:

    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
    53
    54
    55
    56
    package Action;
     
    import java.io.*;
    import java.util.*;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.action.DynaActionForm;
    import org.apache.struts.util.MessageResources;
    import org.apache.struts.actions.*;
    public  class TestAction extends LookupDispatchAction {
     
        // Global Forwards
        public static final String GLOBAL_FORWARD_start = "start";
     
        // Local Forwards
        private static final String FORWARD_goto_resultat = "goto_resultat";
     
     
     
    protected Map getKeyMethodMap() 
    {
       Map map = new HashMap();
       map.put("button.add", "add");
       //map.put("button.delete", "delete");
      return map;
    }
    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) 
      throws IOException, ServletException 
      { 
      System.out.println("execute");
       return mapping.findForward(FORWARD_goto_resultat);
       }
    public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) 
      throws IOException, ServletException 
      { 
      System.out.println("click sur le bouton add");
       return mapping.findForward(FORWARD_goto_resultat);
       }
    /*public ActionForward delete(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) 
      throws IOException, ServletException
       { 
       System.out.println("click sur le bouton delete");
       return mapping.findForward(FORWARD_goto_resultat);
        }*/
     
    }
    et enfin mon ActionForm TestBean:

    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
    package Bean;
     
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
     
    public class TestBean extends org.apache.struts.action.ActionForm {
     
        public TestBean() {
            // TODO: Write constructor body
        }
     
     
    }

    l'erreur produite est la suivante:

    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
    org.apache.jasper.JasperException: Missing message for key "button.add"
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    	at java.lang.Thread.run(Thread.java:534)
    je suis vraiment déboussolé et je demande bien votre aide au niveau du code :o merci infiniment

  12. #12
    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 comprends pas plus le message d'erreur que tu as maintenant que celui d'avant.
    Comme te l'a indiqué Pietra, dans le fichier de ressources,tu as bien codé quelque chose du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    button.add=bouton add
    Sinon, il y a quelque chose qui ne va pas dans ton nouveau code.

    Tu as modifié le paramètre submit en sub dans le struts-config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      <action input="/pages/entrer.jsp" name="TestBean" parameter="sub" 
       path="/test" scope="request" type="Action.TestAction">
    Donc, il faut modifier ta jsp en conséquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html:form action="test"> 
       <html:submit property="sub"> 
       <bean:message key="button.add"/> 
       </html:submit> 
    </html:form>
    Enfin, il me semble que ça devrait marcher.

  13. #13
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    merci à tous ,j'ai résolu mon problème
    il s'agissait d'abord de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:submit  >
     
    <bean:message key="button.add"/>
    </html:submit >


    alors il fallait que je mette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:submit property="submit" >
     
    <bean:message key="button.add"/>
    </html:submit >
    en plus le fichier ApplicationRessources n'était pas "compilé"

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

Discussions similaires

  1. ResourceBundle avec Struts
    Par coboye dans le forum Struts 1
    Réponses: 39
    Dernier message: 03/02/2009, 23h17
  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] utilisation de plusieurs tags <html:subm
    Par Super Castor dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/06/2004, 11h42
  4. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 17h02
  5. [debutant][struts] xml.build
    Par riven dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 17/09/2003, 06h53

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