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 :

Missing message for key "welcome.title"


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut Missing message for key "welcome.title"
    Bonjour, j' ai le message Missing message for key "welcome.title" quand j' essaie de lancer l' appli example Struts avec l' adresse : "http://localhost:8080/PremierStruts/pages/Welcome.jsp"
    et l' erreur "org.apache.jasper.JasperException: Cannot create redirect URL: java.net.MalformedURLException: Cannot retrieve ActionForward named welcome" avec l' url "http://localhost:8080/PremierStruts".

    J' ai trouvé un thread similaire sur le forum, mais il n' apporte pas de réponse convenable à mon problème
    Je pense que ces erreurs sontbien connues des habitués à Struts, merci d' avance pour votre aide ^^
    Quelques extraits de code, demandez moi de compléter si nécessaire :

    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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
     
    <struts-config>
    <!-- Form Bean Definitions ...-->
    <!-- Action Mapping Definitions -->
        <action-mappings>
            <action
                path="/Welcome"
                forward="/pages/Welcome.jsp">
            </action>
        </action-mappings>
        <controller processorClass="org.apache.struts.action.RequestProcessor"/>
    <!-- Message Resources Definitions -->
        <message-resources parameter="MessageResources" />
    </struts-config>
    Welcome.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-html" prefix="html" %>
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
     
    <html:html locale="true">
    <head>
    <title><bean:message key="welcome.title"/></title>
    <html:base/>
    </head>
    <body bgcolor="white">
    ...
    </body>
    </html:html>
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
     
    <web-app>
      <display-name>Struts Blank Application</display-name>
      <!-- Standard Action Servlet Configuration (with debugging) -->
      <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>   
     
        <init-param>
          <param-name>application</param-name>
          <param-value>/WEB-INF/src/java/MessageResources.properties</param-value>
        </init-param>
    <!-- ... -->
      <!-- Standard Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
     
     
      <!-- The Usual Welcome File List -->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!-- Struts Tag Library Descriptors ...-->
     
    </web-app>

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ta premiere erreur est que tu n'as pas défini de message dans le fichier de ressources que tu as déclarés.

    Ton deuxieme message est que tu fais dans ton action un findForward("welcome") alors que tu n'en a pas défini dans le struts-config

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Salut ! Merci pour ton aide J' ai résolu le problème du message-ressources, et quand je tape l' url "http://localhost:8080/PremierStruts/pages/Welcome.jsp" ça marche bien.
    Mais j' ai toujours le du problème du "Cannot retrieve ActionForward named welcome" quand je tape juste le nom du projet. Tu dis que je n' ai pas défini de FindForward("welcome") dans mon config, je ne comprends pas trop, il manque quelque chose ? J' ai ça :

    struts-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- Action Mapping Definitions -->
        <action-mappings>
            <action
            	name="welcome"
                path="/Welcome"
                forward="/pages/Welcome.jsp"/>
    web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      <!-- Standard Action Servlet Mapping -->
       <!-- Quel servlet appeler lorsqu'on a une requete
    	 ici, on appelle "action" si la requete se termine par .do -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
     
      <!-- The Usual Welcome File List -->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    index.jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
    <logic:redirect forward="welcome"/>
     
    <%--
     
    Redirect default requests to Welcome global ActionForward.
    By using a redirect, the user-agent will change address to match the path of our Welcome ActionForward. 
     
    --%>
    Merci d' avance

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    MOntre moi le code de ton Action.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    La seule action que j' ai 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
    package fr.edition.eni.action;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import fr.edition.eni.actionform.LoginForm;
    import fr.edition.eni.javabeans.Login;
     
     
    public class LoginAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws Exception {
     
    		LoginForm monLoginForm = (LoginForm) form;
    		Login monLogin = new Login();
    		BeanUtils.copyProperties(monLogin, monLoginForm);		
    		request.setAttribute(mapping.getAttribute(), monLogin);
    		if (monLogin.getLogin().equals("jcf") && monLogin.getMdp().equals("jcf")) {
    			return mapping.findForward("success");
    		}
    		return mapping.findForward("erreur");
    	}
    }
    mais quand je tape l' url "http://localhost:8080/PremierStruts" je voudrais être redirigé vers la page Welcome.jsp, est-ce qu' il manque une action pour faire ça ?

  6. #6
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par Cram_N7
    mais quand je tape l' url "http://localhost:8080/PremierStruts" je voudrais être redirigé vers la page Welcome.jsp, est-ce qu' il manque une action pour faire ça ?
    Ca ca se config dans le web.xml

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    ok j' ai trouvé c' est le welcome file list de web.xml qui me redirigeait vers index.jsp, qui faisait <logic:redirect forward="welcome"/>. Et là, l' erreur : Cannot retrieve ActionForward named welcome.
    Je n' ai toujours pas réussi à corriger cette erreur, si quelqu' un a une solution je suis preneur.
    La solution que j' ai utilisée (à mon avis pas la meilleure) est de shunter le index.jsp et d' aller directement à /pages/Welcome.jsp en changeant le welcome-file.
    Si vous savez corriger l' erreur ci-dessus ça m' intéresse quand même

    En tout cas merci pour ton aide maxf1

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ce que tu as fait est une solution,

    Sinon tu peux remettre comme avant et rajouter ceci dans les global-forwards:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <forward name="welcome" path="/pages/welcome.jsp" />
    Ce qui reviendra au meme...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Merci ! Je ne connaissais pas la balise global-forwards, elle ne figurait pas dans mon fichier struts-config, mais je l' ai trouvée dans la dtd

    Maintenant mon problème est résolu à 100%, merci encore

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

Discussions similaires

  1. Message d'erreur de Mysql "Duplicate entry '0' for key 1"
    Par Alexandrebox dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/02/2010, 16h54
  2. Réponses: 10
    Dernier message: 27/01/2007, 13h54
  3. [message.properties]missing message for key !
    Par jeb001 dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/11/2006, 22h18

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