2010-05-30 8 views
1

Im utilisant jsf 2.0 pour développer l'application où l'utilisateur doit sélectionner (en utilisant le bouton radio) une date de la liste des choix possibles. Liste des dates est une propriété de bean géré de type Liste < java.util.Date>. Im utilisant facettescomment formater jsf 2.0 <f: selectItems /> avec la valeur date de la liste

<h:selectOneRadio value="#{banner_backing.selectedInterval}" border="1" layout="pageDirection"> 
     <f:selectItems value="#{banner_backing.avaliableIntervals}" var="interval">      
       </f:selectItems> 
</h:selectOneRadio> 

pour afficher les boutons radio.

Voici ma question: comment formater l'étiquette selectItems et la valeur dans un modèle autre que par défaut (Fri May 28 00:00:00 CEST 2010), comme 'HH: mm: ss jj/MM/aaaa'?

+0

duplication possible de [Pourquoi est-ce que f: convertDateTime ne convertit pas les étiquettes de p: selectOneMenu?] (Http://stackoverflow.com/questions/12603632/why-does-fconvertdatetime-not-convert-labels-of-pselectonemenu) – Bob

Répondre

1

Vous ne savez pas si vous pouvez faire la conversion en xhtml en utilisant jsf. Une façon est d'utiliser SimpleDateFormat classe dans vos valeurs de haricots et de format dans le haricot lui-même et l'ajouter à la liste avaliableIntervals

http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html

+0

Merci pour la réponse :) On dirait que je vais devoir le faire de cette façon. Im surpris cette fonctionnalité fait défaut, même les anciennes entretoises l'avaient – Marko

1

Utilisez une méthode de backing bean pour retourner une liste de SelectItems, peuplée de votre liste de autorisé Dates. Formatez la date comme vous le souhaitez lorsque vous créez la liste de SelectItems.

+0

Ouais, j'ai modifié bean backing, et résolu le problème de cette façon. – Marko

1

Cela devrait le faire.

<h:selectOneRadio value="#{banner_backing.selectedInterval}" border="1" layout="pageDirection"> 
    <f:convertDateTime type="date" dateStyle="short"/> 
    <f:selectItems value="#{banner_backing.avaliableIntervals}" var="interval"/>      
</h:selectOneRadio> 

Vous pouvez utiliser pattern = "" pour faire presque n'importe quoi avec la date.

+0

Haha, je viens de remarquer que c'est un an ... – Wayne

Questions connexes