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 :

recupérer la map générée par loadbundle de la memoire


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut recupérer la map générée par loadbundle de la memoire
    Slt,

    Je veux faire récupérer la map situé dans la mémoire après apres aoir executé la page jsf qui contient ce code

    <f:loadBundle basename="com.Message" var="msg" />

    est ce que je peux récupérer cet map de la mémoire avec FacesContext
    et le modifier si c possible.

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    dans le request scope, tu trouvera une valeur sous la clé "msg" . Pour modifier il suffit de changer cette valeur.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    j'ai pas trouvé comment accéder à request à partir de facesContext .
    est ce que tu ve dire par "dans le request scope" a partir du servlet
    ou a partir de la page jsp elle même?

    merci pour votre aide

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par ahmeda Voir le message
    j'ai pas trouvé comment accéder à request à partir de facesContext .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().getExternalContext().getRequestMap()
    Citation Envoyé par javadoc
    Return a mutable Map representing the request scope attributes for the current application. The returned Map must implement the entire contract for a modifiable map as described in the JavaDocs for java.util.Map. Modifications made in the Map must cause the corresponding changes in the set of request scope attributes.
    est ce que tu ve dire par "dans le request scope" a partir du servlet
    ou a partir de la page jsp elle même?
    C'est la même chose. Des request scope, il n'y en a pas 36.000 dans une requete

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    Merci j'ai pu récupérer le map de la mémoire

    Map<String, Object> p=(Map<String, Object>) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("msg");

    mais il me reste un problème ,c qu'il faut connaitre le nom du bundle "var=?" pour pouvoir accéder a cet map.

    moi çe que je veux faire exactement c récupéré cet map par une autre application qui va traduire l'application source en affichant la traduction (apercu ) avant de l'enregistrer les changements dans la fichier de ressources, mais le problème dans ce cas ce qu'il faut que je sais le nom du bundle "var=?"
    je sais pas si t'a compris un peu mon problème

    en tt cas merci pour ton aide

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sans le nom t'aura accès à rien. Je comprend pas pourquoi tu veux chipotter ainsi avec ton ressource bundle (loadressource en jsf, accès direct à l'api) tout ca pour faire des traductions. Pour traduire une application, on prend simplement les fichiers properties et on les file aux traducteurs.

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    Slt tchize

    En faite j'ai une application qui doit initialiser les traductions (contenu des fichiers ressources) ,
    et elle doit me fournir un apercu avec les traductions entrées pour voir es ce qu'elles affectent la mise en forme de la page en question ou non.
    Si c bon on sauvegarde la traduction sinon on entre une autre traduction (plus courte par exemple)
    c un peux flou mai c une application qui va permettre de traduire des applications qui sont en cours d'exploitations, et qui ne doivent pas etre affectés par des grandes changement dans leurs codes.

    Merci

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut vanta
    Le problème, c'est que les ressource bundle une fois chargé en mémoire, en java, il y restent et ils ne sont pas modifiable. Quand tu fait un f:loadbundle, ca va faire appel en backend à ResourceBundle.getResourceBundle(). La "Map" en mémoire n'étant qu'une décoration. Ton problème, c'est que f:loadBundle va a chaque fois recréer la map sur base du ressourcebundle (que tu ne sais pas modifier). Donc si
    1) tu change la map avant l'affichage en fournissant la tienne (qui prendrais les données du banc traducteur), f:loadbundle va écraser la map en question, aucun resultat
    2) si tu change la map après l'affichage, ca sert à rien, evidement
    3) si tu modifie tes jsp/xhtml pour modifier ta map -> autant ne pas passer par f:loadbundle alors. Cependant modifier tes fichiers juste pour l'étape de traduction m'a l'air dangereux


    Pourquoi ne pas faire ce qu'on fait habituellement?
    1) on prend les fichier properties
    2) les traducteur le traduisent entièrement
    3) on charge le proprties dans une applicaiton démo
    4) les traducteurs vérifient l'application démo et note tout ce qui dépasse
    5) on rechange les fichiers properties là ou il faut
    6) tant que nécessaire on recommence en 3

    Avantage: le processus de traduction n'est pas intrusif dans ton application.

Discussions similaires

  1. Réponses: 14
    Dernier message: 03/07/2006, 16h55
  2. [GD] Enregistrer une image générée par PHP sur disque dur
    Par Alex01 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/05/2006, 11h16
  3. Compter nombre lignes générées par GROUP BY
    Par Trunks dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2006, 16h52
  4. Réponses: 2
    Dernier message: 19/12/2005, 21h08
  5. Réponses: 2
    Dernier message: 01/06/2004, 15h08

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