Utiliser un bundle [JSF - MyFaces] - Java - Programmation
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>
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.
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