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] Internationalisation


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 4
    Par défaut [jsf] Internationalisation
    Bonjour a tous

    Je voudrai récupérer les messages du properties selon la langue choisie. Pour cela j'utilise ce bout de code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <f:view locale="#{facesContext.externalContext.request.locale}">
    	<f:loadBundle basename="com.gi.resources.Resources" var="msgs"/>
    	<h:outputText value="#{msgs.type_d_incident}" />
    </f:view>
    j'ai aussitôt cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    16:32:52,796 INFO  [STDOUT] 16:32:52,796 ERROR [[jsp]:119] Servlet.service() for servlet jsp threw exception
    java.lang.ClassCastException: com.liferay.portlet.RenderRequestImpl
    	at org.apache.myfaces.taglib.core.ViewTag.setProperties(ViewTag.java:230)
    	at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:361)
    	at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:219)
    	at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:71)
    	at org.apache.jsp.jsp.nouveau_jsp._jspx_meth_f_view_0(nouveau_jsp.java:256)
    	at org.apache.jsp.jsp.nouveau_jsp._jspService(nouveau_jsp.java:214)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    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
    16:32:52,796 ERROR [PortletRequestDispatcherImpl] org.apache.jasper.JasperException: Exception in JSP: /jsp/nouveau.jsp:96
     
    93: }
    94: </script>
    95: 
    96: <f:view locale="#{facesContext.externalContext.request.locale}">
    97: 
    98: 	
    99: 	<f:loadBundle basename="com.gi.resources.Resources" var="msgs"/>
     
     
    Stacktrace:
    	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
    	at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:242)
    	at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:83)
    	at org.apache.myfaces.context.portlet.PortletExternalContextImpl.dispatch(PortletExternalContextImpl.java:164)
    et meme si j'utilise le au lieu du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:view locale="#{facesContext.externalContext.request.locale}">
    j'ai tjrs la même erreur.

    si j'enlève le locale du view le code me récupère le message sans problème
    si quelqu un a une idée.

  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
    A mon avis ton problème viens d'ici:

    java.lang.ClassCastException: com.liferay.portlet.RenderRequestImpl
    at org.apache.myfaces.taglib.core.ViewTag.setProperties(ViewTag.java:230)


    Le viewTag, pour définir la locale, a probablement fait un typecasting vers un HttpServletRequest quelque part. Résultat, comme t'es dans un environnement type portlet, c'est probablement un PortletRequest que t'as, qui n'est pas compatible. Tu devrais peut être simplement ne pas définir de locale, pour laisser JSF prendre la locale de l'environnement portlet...

    Sinon, c'est probablement un problème spécifique à l'utilisation de JSF avec liferay -> voir chez l'éditeur

  3. #3
    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
    Je confirme après avoir regardé les souces, f:view présuppose que le "externalContext.request" de JSF est un ServletRequest pas un portlet request.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 4
    Par défaut
    Je confirme après avoir regardé les souces, f:view présuppose que le "externalContext.request" de JSF est un ServletRequest pas un portlet request.
    D’accord mais alors pourquoi quand je met directement le j'ai toujours le même problème.

    Et si je laisse le jsf me récupérer la langue directement c'est celle du navigateur qu'il prend.

    j'ai voulu utiliser le jstl au lieu du jsf pour récupérer le local. Le problème c'est comment appeler une variable du jstl en jsf.

    J’explique en code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <fmt:setLocale value="<%=renderRequest.getLocale().getLanguage()%>" scope="request"/>
    <fmt:bundle basename="com.gi.resources.Resources">
    		<tr><td></td><td align="right"><input type="submit" value="<fmt:message key="declarer"/>" class="portlet-form-button"/></td></tr>
    </fmt:bundle>
    cela marche sans aucun problème.
    mais si je veux récupérer la variable du message comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <fmt:setLocale value="<%=renderRequest.getLocale().getLanguage()%>" scope="request"/>
    <fmt:bundle basename="com.gi.resources.Resources">
    <fmt:message key="declarer" var="declarer"/> 
    <h:outputText value="#{declarer}" />
    </fmt:bundle>
    bein au fait j'ai pas idée comment je peux le récupérer je sais que ce bout de code ne marche pas.


    Merci tchize_ pour ta réponse

Discussions similaires

  1. Aide Internationalisation JSF 2.0
    Par ahmedpa dans le forum JSF
    Réponses: 9
    Dernier message: 27/02/2014, 12h23
  2. [jsf 1.2] Problème Internationalisation
    Par wiss85 dans le forum JSF
    Réponses: 1
    Dernier message: 01/12/2011, 09h48
  3. Probleme d'Internationalisation avec JSF
    Par perezoso dans le forum JSF
    Réponses: 8
    Dernier message: 08/11/2010, 22h49
  4. Réponses: 3
    Dernier message: 30/10/2009, 09h46
  5. [JSF] Internationalisation
    Par kitiara999 dans le forum JSF
    Réponses: 2
    Dernier message: 22/02/2006, 17h35

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