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

JSF Java Discussion :

debutant avec ResourceBundle


Sujet :

JSF Java

  1. #1
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut debutant avec ResourceBundle
    bonjour;
    j'ai vient de debuter avec ResourceBundle, j'ai realiser deux classes en java une simple frame et LanguageChooser tout est bien et marche sans probleme; mais mintenat je ne veut pas appliquer LanguageChooser sur une classe mais sur une page jsf comment pourrai-je faire cela?

    ou je doit mettre les fichier proprietes comment configurer l'application et comme appeler ma classe LanguageChooser.
    et merci

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Une simple recherche Google sur les termes "JSF resourceBundle" te donne comme premier lien :
    http://www.laliluna.de/javaserver-fa...-tutorial.html
    Voilou !
    Bonne chance.

  3. #3
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    merci beaucoup djo.mos; votre lien m'a ete tres utile

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    ce tuto se compose de 3 ressources bundles:
    MessageResources_de.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    welcome=Willkommen auf der Seite
    login={0} hat sich eingeloggt am {1}.
    imagePath=/images/image_de.gif
    MessageResources_en.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    welcome=Welcome on this site.
    login={0} have be logged in on {1}.
    imagePath=/images/image_en.gif
    MessageResources_en_US.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    welcome=Welcome on this site.
    login={0} have be logged in on {1}.
    imagePath=/images/image_en_US.gif
    et une classe:
    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
     
    public class Utils {
     
            protected static ClassLoader getCurrentClassLoader(Object defaultObject){
     
                    ClassLoader loader = Thread.currentThread().getContextClassLoader();
     
                    if(loader == null){
                            loader = defaultObject.getClass().getClassLoader();
                    }
     
                    return loader;
            }
     
            public static String getMessageResourceString(
                                                            String bundleName, 
                                                            String key, 
                                                            Object params[], 
                                                            Locale locale){
     
                    String text = null;
     
                    ResourceBundle bundle = 
                                    ResourceBundle.getBundle(bundleName, locale, 
                                                                                    getCurrentClassLoader(params));
     
                    try{
                            text = bundle.getString(key);
                    } catch(MissingResourceException e){
                            text = "?? key " + key + " not found ??";
                    }
     
                    if(params != null){
                            MessageFormat mf = new MessageFormat(text, locale);
                            text = mf.format(params, new StringBuffer(), null).toString();
                    }
     
                    return text;
            }
    }
    et un bean :
    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
     
    public class MyBean {
     
            public String getWelcomeMessage() {
     
                    FacesContext context = FacesContext.getCurrentInstance();
     
                    String text = Utils.getMessageResourceString(context.getApplication()
                                    .getMessageBundle(), "welcome", null, context.getViewRoot()
                                    .getLocale());
     
                    return text;
            }
     
    }
    et en fin la 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
     
    <%@ page language="java" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
            <title>JSF message resource</title>
    </head>
     
    <body>
            <f:view>
                    <f:loadBundle basename="de.laliluna.tutorial.messageresource.MessageResources" 
                            var="msg"/>
     
                            <h:outputText value="#{msg.welcome}" />
     
                            <br><br>
     
                            <h:outputFormat value="#{msg.login}">
                                    <f:param value="Peter" />
                                    <f:param value="10/03/2005" />
                            </h:outputFormat>
     
                            <br><br>
     
                            <h:graphicImage value="#{msg.imagePath}" />
     
                            <br><br>
     
                            <h:outputText value="#{myBean.welcomeMessage}" />
            </f:view>
    </body>
    </html>


    mon question est le suivant:
    dans la jsp il ya appel de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <f:loadBundle basename="de.laliluna.tutorial.messageresource.MessageResources" 
                            var="msg"/>
    mais il n'ya pas specification du resourcebundle a utiliser;
    par exemple, comment faire pour utiliser la langue anglaise et comment faire pour selectionner la langue (deutch).
    et d'autre terme comment passer d'une laugue a une autre

  5. #5
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    Il choisi le bundle est choisie en fonction de la locale.
    Tu peux affecter la locale de ton choix sur la balise <f:view locale=....>
    A doit de mettre en paramètre locale, la locale de ton choix.

  6. #6
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    alors comment est choisit la langue dans mon exemple, car je ne voit pas l'utilisation de <f:view locale=....>.

  7. #7
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    Il y a une locale par défaut

  8. #8
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    alors c'est quoi l'utilite de la classe Utils?

  9. #9
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    La classe Utils est un exemple qui explique comment on charge un message à partir de la clé et de la Locale.
    C'est grosso modo la manière dont JSF fonctionne pour charger tes messages.

    Dans l'exemple, il utilise un méthode particulière pour charger le message : "myBean.welcomeMessage()"

    En pratique tu n'est pas obligé de faire ça.
    Tu ferais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //msg est le nom de ton resource bundle
    <h:outputText value="#{msg.welcomeMessage}" />
     
    avec dans le fichier de ressources :
    welcomeMessage=Bonjour
    Je te conseille de regarder les APIs :
    http://java.sun.com/j2se/1.4.2/docs/...il/Locale.html
    http://java.sun.com/j2se/1.4.2/docs/...rceBundle.html

    Et dans la spec : JavaServer Faces v1.1 Specification Final Release
    http://java.sun.com/javaee/javaserve.../download.html

  10. #10
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    merci beaucoup seb55555 tu m'as vraiment aider;
    un autre question est ce qu' il suffirai que j'utilise les 3 fichiers resourcebundle et une page jsp et il suffit simplement de telecharger les fichier resource par <f:view locale=....> dans ma page jsp

  11. #11
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    Si tu as 3 fichiers resource bundle.
    messages_fr.properties
    messages_de.properties
    messages_en.properties

    Tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <f:view locale=#{ICI LA LOCALE CORRESPONDANT A LA LANGUE VOULUE}>
     
    <f:loadBundle basename="package.messages" var="msg"/>
     
    <h:outputText value="#{msg.welcomeMessage}" />
    JSF chargera le message welcomeMessage dans le bundle correspondant à la locale.

  12. #12
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    donc ici je n'est pas besoin de bean?

  13. #13
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    non, dans ce cas le bean, c'est "msg"

  14. #14
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    je vous remerci infiniment seb55555

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

Discussions similaires

  1. debutant avec ResourceBundle
    Par anisj1m dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 17/10/2007, 11h50
  2. Probleme simple de debutant avec INSERT TO et UPDATE
    Par Tom_Cruise dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/08/2005, 08h15
  3. debuter avec opengl
    Par osykomantis dans le forum OpenGL
    Réponses: 2
    Dernier message: 15/03/2005, 11h45
  4. Problème pour debuter avec glut
    Par ismael14 dans le forum GLUT
    Réponses: 2
    Dernier message: 26/07/2004, 10h37
  5. Gentoo prob de startx (Débutant) avec une ATI
    Par ~Dr@cuL~ dans le forum Applications et environnements graphiques
    Réponses: 10
    Dernier message: 08/04/2004, 18h42

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