[JSF - MyFaces] Utiliser un bundle

Utiliser un bundle [JSF - MyFaces] - Java - Programmation

Marsh Posté le 05-09-2007 à 10:51:29    

Bonjour,
 
Je souhaite utiliser myfaces pour un projet JSF. Je n'arrive pas à utiliser un pauvre bundle. Alors voici ma procédure (sous tomcat)
1) download de l'appli myfaces-blank (un projet myfaces vierge affichant un helloWorld). Tout marche nickel
2) Je tente de modifier le helloWorld.jsp en gérant les messages avec un bundle :
 
Source original :
 

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <f:view>
            <h:form id="form">
              <h:panelGrid id="grid" columns="2">
                <h:outputText id="output1" value="Please enter your name"/>
                <h:inputText id="input1" value="#{helloWorldBacking.name}" required="true"/>
                <h:commandButton id="button1" value="press me" action="#{helloWorldBacking.send}"/>
                <h:message id="message1" for="input1"/>
              </h:panelGrid>
            </h:form>
        </f:view>
    </body>
</html>


 
Ajout du bundle :
 
 

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:loadBundle var="bundle_msg" basename="messages" />
<f:loadBundle var="bundle_app" basename="application" />
<html>
<head>
<title><h:outputText value="#{bundle_app.application.title}" /></title>
</head>
<body>
<f:view>
 <h:form id="form">
  <h:panelGrid id="grid" columns="2">
   <h:outputText id="output1" value="Please enter your name" />
   <h:inputText id="input1" value="#{helloWorldBacking.name}"
    required="true" />
   <h:commandButton id="button1" value="press me"
    action="#{helloWorldBacking.send}" />
   <h:message id="message1" for="input1" />
  </h:panelGrid>
 </h:form>
</f:view>
</body>
</html>


 
 
ajout à la racine du projet web d'un repertoire resources auquel je mets dedans messages_en.properties et application.properties.
 
Enfin déclaration du bundle dans le faces-config :
 
 

<application>
  <message-bundle>resources.application</message-bundle>
  <message-bundle>resources.messages</message-bundle>
  <locale-config>
   <default-locale>en</default-locale>
   <supported-locale>en</supported-locale>
   <supported-locale>fr</supported-locale>
  </locale-config>
 </application>


 
Au chargement de la page helloWorld.jsp, les messages ne s'affichent pas et j'ai l'erreur très explicite :
 
5 sept. 2007 10:40:39 org.apache.myfaces.taglib.core.LoadBundleTag resolveBundle
GRAVE: Resource bundle 'messages' could not be found.
5 sept. 2007 10:40:39 org.apache.myfaces.taglib.core.LoadBundleTag resolveBundle
GRAVE: Resource bundle 'application' could not be found.

 
Pourquoi ? Que faut-il faire ?
 
Merci de votre aide.


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 05-09-2007 à 10:51:29   

Reply

Marsh Posté le 05-09-2007 à 16:38:34    

Essaye en mettant ceci :
<f:loadBundle var="bundle_msg" basename="messages" />
<f:loadBundle var="bundle_app" basename="application" />  
dans ton  
<f:view></f:view>
et en utilisant l'attribut 'locale' du tag <f:view>

Reply

Marsh Posté le 08-09-2007 à 20:42:28    

en fait les bundle doivent être dans le WEB-INF/src autrement dit avec les sources.  [:spamafote]


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed