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 :

bean et recupération de données + internationalisation


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut bean et recupération de données + internationalisation
    Bonjour,
    je developpe une application struts et suis arrivés au stade d'internationalisation.
    pour les labels il n'ya aucun problème puisque j'utilise le fichier .properties .
    Mais le problème est dans les données provenant de la BD (oracle 10g), je m'explique
    dans ma BD pour chaque table j'ai une colonne pour les label en français et une en anglais et j'utilise les EJB3 pour le mapping donc pour chaque bean ya la propriété labelF et labelA.
    la solution que j'ai en tete est d'utiliser des logic:equal sur le languge. mais dans ma page ya plein de displaytag et de truc à afficher et je cherche un truc générique pour résoudre ce pb sans passer pr les logic:equal genre d'injecter une propriété label dans le bean qui contiendra le label convenable selon la langue
    je suis à l'ecoute de vos propositions

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    salut, il te suffit de créer une classe qui étend org.displaytag.localization.I18nJstlAdapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Class MonAdapter extends org.displaytag.localization.I18nJstlAdapter{
     
    }
    et afin d'aller chercher tes messages où tu veux (par exemple dans ta bdd).
    tu créé la classe MonAdapter et tu redéfinie la méthode getResource :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public String getResource(String resourceKey, String defaultValue, Tag tag, PageContext pageContext){
    String value=null;
     
    //connection à la bdd ou à mes ejb .....
    //TODO
     
    //récupération de la valeur associé à la clé demandé:
    //TODO
     
    return value;
    }
    après il te reste à spécifier dans ton fichier de conf displaytag.properties la clé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # a la place de :
    # locale.provider=org.displaytag.localization.I18nStrutsAdapter
    # tu met ta classe:
    locale.provider=monPakage.MonAdapter
    voilà

    tu peux utiliser simplement l'i18N offerte par struts de façon basique:
    par exemple sans avoir besoin de faire des tests <logic:..>.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:message key="ihm.title" locale="locale" />

    cf: http://www.docjar.com/html/api/org/d...pter.java.html

  3. #3
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut
    Merci je vais essayer ça et je vous tiendrais au courant

  4. #4
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut
    c'est encore moi comme j'ai dis au depart dans mes bean j'ai deux propriété labelF et labelA et je vx afficher le label convenable selon le language. la solution que tu m'as donné concerne les messages ressources je suppose et non pas les donnée provenant de la BD ????

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    ta solution de départ avec tes bean labelA et labelF ne pourra marcher qu'avec un test dans chaques pages (ce n'est pas ce que tu souhaites il me semble? alors tu as deux solutions:
    1) soit tu laisse tomber complêtement tes deux bean (supprime tous le code qui te créée ces deux bean, tu n'en pas besoin) et tu utilise la solution que je t'ai proposée. (cette solution te permet d'utiliser ta bdd à la place de tes messages ressources contenues dans le fichier propertie =====> selon la locale tu ira chercher le bon label correspondant dans ta bdd). je te remet le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public String getResource(String resourceKey, String defaultValue, Tag tag, PageContext pageContext){
    String value=null;
     
    //connection à la bdd ou à mes ejb .....
    //TODO
     
    //récupération de la valeur associé à la clé demandé:
    //TODO
     
    return value;
    }
    2) soit tu créé ta propre balise struts qui prend en paramêtre un bean de type HashMap contenant un nombre indeterminé de Key-value du type "labelA" - "Hi"
    "labelF" - "salut" et en deuxieme paramêtre la locale: locale="locale". par contre pour créer ta propre balise je ne peux pas t'aider dsl.

    3) soit, derniere et ultime solution: explique mieux ton problème
    ++

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Tu peux également faire ceci :
    Dans ta BDD
    - tu remplace ta colone LabelF par une colone LabelKey,
    - tu supprime ta colone LabelA

    et da ta colone labelKey tu mets la clé du libellé attendu
    Quand tu vas récupérer ton objet, tu auras donc un champ labelKey,
    Et dans ta jsp tu met direct un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="labelKey/>"
    L'internationnalisation se fera d'elle même grâce à tes fichiers properties....



    Bon courage


    Anne

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/01/2010, 14h02
  2. Réponses: 2
    Dernier message: 20/01/2005, 15h19
  3. [MFC]Recupération de donnée et conversion
    Par Guilhem dans le forum MFC
    Réponses: 8
    Dernier message: 16/06/2004, 10h36
  4. [Indy TCPClient] Recupérer le données reçues
    Par fandor7 dans le forum Web & réseau
    Réponses: 8
    Dernier message: 29/06/2003, 21h52

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