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

Servlets/JSP Java Discussion :

[JSP]internationnalisation en jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut [JSP]internationnalisation en jsp
    j'ai une servlet qui fait acce a une base de donne mysql

    dans cette base de donne j'ai une table langue je voudrais a l'aide de la sevlet utilise le principe de l'internationnalisation si queqlqu'un a une idee ????


    qu'il me tiens au courant ???
    merci d'avance


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    1) C'est plutot du J2ee, je déplace le sujet
    2) Des idées ont en plein (normal on a pas de pétrole) mais là il va falloir être plus précis, dans ton sujet tu parles de jsp et dans le corps de servlet.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    donc j'ai un jsp qui demande d'entrer le choix de langues
    et les langues utilisables sont dans une bd mysql dans la table langue donc je voudrais savoir comment faire pour change la langue de la page qui vient apres????
    merci d'avance

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    En fait en jsp, il existe plusieurs taglib qui permettent de gêrer l'internationalisation, struts ou jstl.
    Dans le cas de struts par exemple, le comportement par défaut est basé sur des fichiers dis fichiers de properties. Il suffit de surcharger le comportement par défaut qui au lieu de charger depuis un fichier, le fait depuis la DB.

    Donc premiere chose choisir la taglib pour internationaliser.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    avec la servlet ca marche ou pas.
    le jsp appel une servlet et ke lui qui fe le travail et qu'il appel une autre page avec la langue choisit si c possible dis moi comment si non explique moi un peu plus comment faire avec jsp stp
    merci!!!

  6. #6
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Bon le langage sms evite, il est trop tard pour mon faible cerveau.
    Bien sur rien ne t'empêches de le faire avec la servlet.
    On pourrait envisager:
    1) La servlet charge les textes de la db.
    2) Les sauvegarde dans la session ou dans le servletContext.
    3) La jsp les lit du context ou de la session et les affiche.

    Mais c'est une solution qui n'est pas standard.

    Tu ne m'as répondu, utilise tu struts ou un autre framework ou au moins la jstl ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    en fete j'ai 2 fichier properties un pour le francais et l'autre pour l'anglais
    ce ke je voudrtais c le 1 jsp demande la langue par exemple il va vers la servlet qui elle lance un autre jsp avec la langue choisit voila ce que je veux faire plus exactements !!!
    merci!!!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    je veux faire ca avec le principe des bundles

  9. #9
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    oui mais quelle taglib utilises tu?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    pour l'instant aucun

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux peut-être étendre la classe ResourceBundle en redéfinissant la méthode handleGetObject() pour qu'elle recherche dans la base de données...

    C'est possible dans une application Java standard si tu respectes les noms de nommages des fichiers properties pour tes classes qui hérite de ResourceBundle (c'est à dire avec la langue et le pays séparé par des underscore).

    Par contre je ne sais pas exactement comment c'est géré par les différentes taglibs (struts ou JSTL) donc c'est à testé...

    Par contre je pense que la solution des fichiers *.properties serait plus propre, afin d'éviter de faire des accès en base à chaque fois (le contenu des fichiers properties est conservé en cache).

    a++

  12. #12
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Citation Envoyé par adiGuba
    Par contre je pense que la solution des fichiers *.properties serait plus propre, afin d'éviter de faire des accès en base à chaque fois (le contenu des fichiers properties est conservé en cache).
    En fait avec struts c'est tout à fait faisable de remplacer le chargement des *.properties par un accèss à la base tout en conservant le mécanisme de cache.

    Je pense que c'est pareil avec la jstl mais il faudrait regarder de plus près.

    Le seul problème c'est que l'exemple précis je l'ai au ... boulo donc il faudra attendre demain

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    merci pour ta reponse
    et a bientot

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zekey
    En fait avec struts c'est tout à fait faisable de remplacer le chargement des *.properties par un accèss à la base tout en conservant le mécanisme de cache.
    Ok je l'ignorais ! C'est bon à savoir

    Citation Envoyé par zekey
    Je pense que c'est pareil avec la jstl mais il faudrait regarder de plus près.
    Je n'ai rien vu de tel, mais la JSTL n'est qu'une specification, et donc l'implémentation peut très bien géré un cache... Donc c'est fort probable en effet...

    Citation Envoyé par zekey
    Le seul problème c'est que l'exemple précis je l'ai au ... boulo donc il faudra attendre demain
    Intérréssant... un sujet à surveiller

    a++

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    merci !!! pour la collaboration

  16. #16
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Salut voila comment faire avec struts:
    Dans le struts-config.xml if faut définir sa propre factory pour les resources
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <message-resources
      factory="util.struts.DBMessageResourcesFactory"
      key="org.apache.struts.action.MESSAGE" null="false" parameter="online.config.Resources"/>
    La classe DBMessageResourcesFactory
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class DBMessageResourcesFactory extends PropertyMessageResourcesFactory {
        public MessageResources createResources(String config) {
            return new BasePropertyMessageResources(this, config,this.returnNull);
        }    
    }
    et la BasePropertyMessageResources
    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
     
    public class BasePropertyMessageResources extends PropertyMessageResources {
     
         public BasePropertyMessageResources(MessageResourcesFactory factory,String
         config) {
         super(factory, config);
         log.info("Initializing, config='" + config + "'");
         }
     
         public BasePropertyMessageResources(MessageResourcesFactory 	factory,String
         config, boolean returnNull) {
             super(factory, config, returnNull);
             log.info("Initializing, config='" + config +"', returnNull=" +
         returnNull);
         }
     
        public void reset(){
            try{
                messages.clear(); 
                locales.clear(); 
                formats.clear();
            }catch(Exception e){
                DefaultExceptionHandler.handleException(getClass(), e);            
            }
        }
     
    	protected HashMap locales = new HashMap();
     
    	protected static final Log log=LogFactory.getLog(BasePropertyMessageResources.class);
     
    	public String getMessage(String pLogin, String pPassword, Locale pLocale, String pKey){
    		return (String)ResourceService.getInstance().getResource(pLogin, pPassword, pLocale.getLanguage(), pKey);
    	}
     
    	public String getMessage(Locale pLocale, String pKey){
    		return (String)PmsResourceService.getInstance().getResource(Application.getDbUser() , Application.getDbPasswd(), pLocale.getLanguage(), pKey);
    	}	
     }
    A vous de définir le comportement de getResource() avec ou sans cache, etc... autre avantage, on peut appeller un reset à tous moments.

  17. #17
    Membre habitué Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Points : 147
    Points
    147
    Par défaut
    ok merci ze_key pour cette méthode 8)

    Aussi il peut regarder par ici :
    http://java.sun.com/docs/books/tutorial/i18n/intro/after.html

Discussions similaires

  1. [JSP] appel de JSP en recursif
    Par sam69 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 11/05/2006, 10h52
  2. [ JSP ] Itération en JSP
    Par samios dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 22/10/2005, 18h15
  3. [jsp][servlet] communication jsp servlet
    Par villeneuvejsp dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 03/10/2005, 15h36
  4. [JSP]Caractere diese + jsp
    Par zach dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 18/05/2005, 16h52
  5. [JSP]formulaire de JSP ne valide pas
    Par rivierem dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/10/2004, 14h26

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