IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ JSFConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 70, dernière mise à jour : 10 juin 2008  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

SommaireQuelques erreurs fréquentes (3)
précédent sommaire suivant
 

Explication : lorsque l'on stocke une date dans la base de données (supposons le 07/02/2008), il est effectivement possible que l'heure stockée soit par défaut 00h00 si celle-ci n'est pas précisée.
Lors de l'affichage, le calendrier fait la "conversion" avec les fuseaux horaires pour correspondre à l'affichage du client. Selon la configuration de ce dernier, il est possible que la conversion entraîne une soustraction d'heures, et donc fait passer la date à la veille.

Solution : il suffit de forcer l'utilisation d'une Timezone grâce au composant <f:convertTimeDate> :

Code xml : Sélectionner tout
1
2
3
<h:outputText value="#{monBean.maDate}"> 
    <f:convertDateTime pattern="dd/MM/yyyy" timeZone="Europe/Paris"/> 
</h:outputText>
Ou mieux encore, en passant par un fichier .properties pour avoir un affichage localisé :

Code xml : Sélectionner tout
1
2
3
<h:outputText value="#{monBean.maDate}"> 
    <f:convertDateTime pattern="#{prop.dateformat}" timeZone="#{prop.timezone}"/> 
</h:outputText>

Mis à jour le 6 mars 2008 romaintaz

Lorsque vous recevez ce message, c'est que vous essayez d'accéder à une page JSF (contenant des composants JSF) en utilisant le nom réel du fichier et non pas en appliquant le pattern associé à la FacesServlet.

Par exemple, si vous avez configuré le pattern de la FacesServlet comme ceci (dans web.xml) :

Code xml : Sélectionner tout
1
2
3
4
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping>
Et que vous essayez d'accéder à une page JSF située dans un fichier nommé page.jsp par l'URL page.jsp, alors une exception FacesContext not found sera levée.

Il faut plutôt accéder à la page en utilisant le suffixe jsf, c'est-à-dire avec page.jsf.

Mis à jour le 12 février 2008 djo.mos

Que veut dire le message :

Code : Sélectionner tout
com.sun.faces.context.FacesContextImpl addMessage Adding Message[sourceId=xxxxx:xxxxx,summary=Erreur de validation: Valeur not valid.)
Ainsi que les variantes suivantes :

Code : Sélectionner tout
..... summary=Validation Error: Value is not valid
Ce message indique que l'attribut correspondant, au niveau du managedBean, n'a pas le type attendu.

Par exemple, si la liste des id pour un composant selectOneMenu est construite à partir BigDecimal et que le champ permettant de réceptionner la valeur sélectionnée est de type Integer ce type d'erreur remontera (sans plus d'explication).

Mis à jour le 12 février 2008 fabszn

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.