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 :

JSF et i18n pour page de login


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut JSF et i18n pour page de login
    Bonjour,
    J'ai une application web sous Tomcat, utilisant JSF (rich faces)/facelets pour laquelle je doit avoir de l'internationalisation. une fois authentifié, ça fonctionne avec :
    template.xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <f:view locale="localeBean.locale">
    ...
    <h:form id="localeForm" prependId="false">
        <h:commandLink id="FR" actionListener="#{localeBean.changeLocale}" immediate="true">
            <h:graphicImage url="/style/imgs/flag_fr16.png"/>&nbsp;&nbsp;&nbsp;
        </h:commandLink>
        <h:commandLink id="EN" actionListener="#{localeBean.changeLocale}" immediate="true">
            <h:graphicImage url="/style/imgs/flag_uk16.png" />&nbsp;&nbsp;&nbsp;
        </h:commandLink>
    </h:form>
    ...
    </f:view>
    LocaleBean.java :
    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
    public class LocaleBean
    {
    private String locale;
    public String getLocale()
        {
        	if (locale== null)
        	{
        		FacesContext context = FacesContext.getCurrentInstance();
        		Locale aLocale = context.getApplication().getDefaultLocale();
        		locale = aLocale.getLanguage();
        	}
        	return locale;
        }
        public void changeLocale(ActionEvent evt)
        {
            System.out.println("changeLocale");
            String componentId = evt.getComponent().getId();
            FacesContext context = FacesContext.getCurrentInstance();
            context.getViewRoot().setLocale(new Locale(componentId));
            locale = componentId;
        }
        public void authenticate()
        {
        ....
        }
    ...
    }
    Jusque là tout va bien.


    En revanche, je n'arrive pas à faire la même chose sur la page de login : je voudrais pouvoir choisir la langue avant d'avoir à me connecter .
    Voici ma page de connexion :
    login.xhtml :
    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
    <h:form id="localeForm" prependId="false">
                      <h:commandLink id="FR" actionListener="#{localeBean.changeLocale}" immediate="true">
                        <h:graphicImage url="/style/imgs/flag_fr16.png" />&nbsp;&nbsp;&nbsp;
                      </h:commandLink>
                      <h:commandLink id="EN" actionListener="#{localeBean.changeLocale}" immediate="true">
                        <h:graphicImage url="/style/imgs/flag_uk16.png" />&nbsp;&nbsp;&nbsp;
                      </h:commandLink>
                    </h:form>
     
                    <h:form id="loginForm" prependId="false">
                    <h1><h:outputText value="#{guiBundle.TITLE_APPLI}" /></h1>
                      <div id="ident">
                        <fieldset id="user-ident">
                          <p>
                            <label><h:outputText value="#{guiBundle.LABEL_USER_LOGIN}" /><span><h:inputText id="j_username" required="true" /></span></label>
                          </p>
                        </fieldset>
                      </div>
                      <div id="password">
                        <fieldset id="user-password">
                          <p>
                            <label><h:outputText value="#{guiBundle.LABEL_USER_PWD}" /><span><h:inputSecret id="j_password" required="true" /></span></label>
                          </p>
                        </fieldset>
                      </div>
                      <h:commandButton type="submit" value="#{guiBundle.BUTTON_APPLY}" 
                             action="#{localeBean.authenticate}"/>
                    </h:form>
    (1) les images drapeaux ne s'affichent pas (pourtant quand je fait "afficher la source" dans le navigateur, j'ai bien une balise <img src=...)
    (2) si je clique à l'endroit où devrait être l'image, je passe dans la trace "changeLocale" mais point de i18n, je reste en langue par défaut.

    HEEEEEElp !!

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut
    pour info, que je passe par une config Tomcat ou que j'utilise spring security, même combat.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut
    J'ai compris pourquoi mes images (dans le liens) ne s'affichaient pas .
    C'est idiot. Dans ma config spring security, j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <intercept-url pattern="/style/**" filters="none"/>
    ..Et oui, la sécurité marchait "trop" bien.
    Et du même coup, la traduction sur le click s'opère bien.
    Bon j'ai un pb de login, mais ça fera l'objet d'un autre post

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

Discussions similaires

  1. syntaxe pour passer un login et un mot de passe à une page internet
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/07/2010, 22h19
  2. Frame et menu père-fils pour page JSF
    Par methodman225 dans le forum JSF
    Réponses: 14
    Dernier message: 01/04/2010, 12h24
  3. Struts + Hibernate pour une page de Login
    Par Viscapon dans le forum Struts 1
    Réponses: 1
    Dernier message: 04/10/2008, 08h39
  4. JSF - un ManagedBean pour plusieurs pages JSP
    Par OreillePointue dans le forum JSF
    Réponses: 2
    Dernier message: 11/03/2008, 15h41
  5. Réponses: 5
    Dernier message: 03/07/2006, 17h19

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