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

JavaScript Discussion :

charset dynamique en JSP


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut charset dynamique en JSP
    Bonjour à tous,
    Alors voilà j'ai un petit problème dans un fichier jsp et j'aurais besoin d'un peu d'aide.
    J'aurais besoin de mettre un charset dynamique (UTF-8 ou GB2312) suivant le language de l'OS de l'utilisateur.
    J'ai réussi à récupérer la langue en javascript.
    Par contre je ne peux pas définir deux fois de charset même dans des conditions.
    J'ai donc pensé à faire des includes de fichiers déclarant chacun un charset et inclure le bon fichier selon le language de l'OS mais ça ne marche pas.

    J'ai le code suivant :

    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
     
    <script language="JavaScript" >
    var language =  (navigator.appName == 'Netscape') ? navigator.language :  navigator.browserLanguage;
    var code = language.substring(0,2);
     
    if(code == "fr" )
    {
    	var contentType = "/edsplm/mwau/charsetUTF.incjsp" ;	
    }
    else
    {
    	var contentType = "/edsplm/mwau/charsetGB.incjsp" ;		
    }	
    </script>
     
    <jsp:include page=<%=contentType %> flush="true"/>
    dans mes fichiers include j'ai juste la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ page contentType="text/html;charset=UTF-8" %>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ page contentType="text/html;charset=GB2312" %>
    Est-ce que vous auriez une idée ?
    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'ai réussi à récupérer la langue en javascript.
    Dans ce cas, tu dois pouvoir récupérer la langue dans le head et pouvoir insérer ta balise meta après.
    Ceci dit, il me semblerais plus judicieux de vérifier depuis le serveur et créer ta page directement...
    De plus, une fois que le script javascript se lance, le coté serveur a déjà fini de bosser.

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    C'est pas possible de faire comme ca parce que javascript s'exécute coté client et jsp coté serveur, ce qui veut dire qu'au moment ou tu récupères ta langue en javascript, ta jsp est déja chargée, donc tu ne peux pas la modifier

    Pour récupérer la langue coté serveur, utilise dans l'objet request de ta jsp la méthode getLocale().

    http://java.sun.com/j2ee/1.4/docs/ap...ml#getLocale()

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    C'est pas possible de faire comme ca parce que javascript s'exécute coté client et jsp coté serveur, ce qui veut dire qu'au moment ou tu récupères ta langue en javascript, ta jsp est déja chargée, donc tu ne peux pas la modifier

    Pour récupérer la langue coté serveur, utilise dans l'objet request de ta jsp la méthode getLocale().

    http://java.sun.com/j2ee/1.4/docs/ap...ml#getLocale()
    Pour info notre code se trouve sur un serveur Unix et déployé via tomcat 5.5
    Les utilisateurs se connectent en Chine, aux EU et en France.
    Est-ce que la variable getLocale ne retourne pas plutôt la langue du serveur que celle du client web ?
    Par ailleurs, je connais très mal le java et voit difficilement comment l'intégrer dans ma jsp et comment définir un charset dynamique

  5. #5
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    public java.util.Locale getLocale()

    Returns the preferred Locale that the client will accept content in, based on the Accept-Language header. If the client request doesn't provide an Accept-Language header, this method returns the default locale for the server.
    Quand j'envoie une requête a mon serveur, je vois ca de chez moi:
    Accept-Language fr,en-us;q=0.7,en;q=0.3

    Donc je suppose qu'il arrive bien a récupérer la locale correcte.

    Apres tu prends ce résultat et tu fais ton include qui va bien...

    Edit: si tu ne sais pas comment faire la suite en java, va plutot demander de l'aide sur le forum j2ee, ca sera sans doute plus approprié puisque javascript n'a rien a voir avec ton problème.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Surtout que le lien que tu as donné répond exactement à la question...
    La solution de DoubleU est bonne.

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

Discussions similaires

  1. charset dynamique sur une JSP
    Par adeline77 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 26/06/2008, 11h13
  2. problème de listes déroulantes liées dynamiques avec jsp
    Par solfegepro dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/08/2007, 17h11
  3. Créer des noms de variables dynamiquement avec JSP
    Par Zakapatul dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2007, 14h24
  4. Réponses: 6
    Dernier message: 23/02/2006, 09h47
  5. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50

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