Si #{myBean.birthdate}
Est de type Java.util.Calendar
Ou Java.util.Date
, Puis-je éventuellement le formater à l'intérieur de l'EL lui-même en utilisant une fonction existante, avec le résultat de celui produit par le DateFormat
'SHORT
, MEDIUM
, LONG
abd FULL
type de sortie?
Au lieu de sortir le formulaire complet pour le #{myBean.birthdate}
: mer. 19 janvier 19:01:42 WIT 2011, je préfère simplement une sortie simple de 19 janvier 2011 =.
Devrais-je utiliser #{formatBean.format(myBean.birthdate)}
à la place?
Utilisation <f:convertDateTime>
. Vous pouvez l'imbriquer dans n'importe quel composant d'entrée et de sortie. Les règles de modèle sont les mêmes que Java.text.SimpleDateFormat
.
<h:outputText value="#{someBean.dateField}" >
<f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</h:outputText>
Si vous utilisez OmniFaces , vous pouvez également utiliser ses fonctions EL comme of:formatDate()
pour formater les objets Date
. Vous l'utiliseriez comme ceci:
<h:outputText value="#{of:formatDate(someBean.dateField, 'dd.MM.yyyy HH:mm')}" />
De cette façon, vous pouvez non seulement l'utiliser pour la sortie, mais également pour le transmettre à d'autres composants JSF.
Avec EL 2 (Expression Language 2), vous pouvez utiliser ce type de construction pour votre question:
#{formatBean.format(myBean.birthdate)}
Ou vous pouvez ajouter un autre getter dans votre grain, ce qui entraîne
#{myBean.birthdateString}
où getBirthdateString renvoie la représentation textuelle appropriée. N'oubliez pas d'annoter la méthode get avec @Transient s'il s'agit d'une entité.