Bonjour,
Je débute en JSF et je voulais insérer un calendrier dans une page. Récupérer le jour le mois et l'année choisis. Seulement je ne sais pas comment y arriver.
Version imprimable
Bonjour,
Je débute en JSF et je voulais insérer un calendrier dans une page. Récupérer le jour le mois et l'année choisis. Seulement je ne sais pas comment y arriver.
Je pense que tu pourras ajouter un calendrier javascript (y'en a qlq'uns sur le web) pour la saisie de ta date. Après tu pourras exploiter le champ rempli par ce calendrier par jsf.
Je pensais qu'il existe dans jsf un composant calandar que je peux incorporer dans mon formulaire. Un calendrier JavaScript est mon dernier recours
Bonjour,
De base, JSF ne dispose que de composants très basiques (combobox, input, table, etc.).
Il est pratiquement toujours nécessaire d'ajouter une librairie supplémentaire de composants afin de gérer l'Ajax, des composants plus complexes.
Parmi les plus utilisées, il y a RichFaces et Tomahawk. Les deux proposent des composants de calendrier.
Voici la démo de celui de RF, ici.
RichFaces utilise Ajax si j'ai bien compris !!! ça rejoint la proposition de TheJoe.
Mais ça m'interesse. Le seule ik est que je vais devoir plancher sur une autre spec. Quelqu'un sait recuperer la date de ce calendar ?
Pruderic, je ne comprends pas bien ta remarque je dois dire...
Tout d'abord, un composant calendrier, sera pratiquement obligatoirement fait (en partie) en Javascript. Un calendrier pur HTML, je ne vois pas trop ce que ça pourrait donner (ou alors un truc assez lourd à utiliser).
Le composant calendar de RF ne déroge pas à la règle.
A noter que RF n'utilise pas nécessairement Ajax. Certains composants de RF proposent en effet des fonctionnalités Ajax, mais rien ne t'oblige à les employer ! Ajax c'est bien, mais il faut savoir quand l'utiliser, et ne pas en abuser !
Qu'entends-tu par là ?
Utiliser RF ce n'est pas très compliqué. Il faut "juste" configurer ta webapp pour ça (tu trouveras des infos sur ce site, ou sur le site de RF), et après, ce n'est qu'une question d'utilisation de composants. Le site de démo est plutôt bien fait, et tu peux voir le code JSF utilisé pour chaque composant, ce qui facilite les choses...
Dans la démo de JSF justement, on a ce code :
Ce qui signifie que dans le bean calendarBean, il existe une propriété selectedDate de type java.util.Date disposant de getter et setter.Code:
1
2
3
4
5 <rich:calendar value="#{calendarBean.selectedDate}" locale="#{calendarBean.locale}" popup="#{calendarBean.popup}" datePattern="#{calendarBean.pattern}" showApplyButton="#{calendarBean.showApply}" cellWidth="24px" cellHeight="22px" style="width:200px"/>
Lorsque tu soumets le formulaire contenant le champ du calendrier, alors la date est mise dans calendarBean.selectedDate...
J'espère avoir été suffisament clair :)
Merci pour ta reponse. Ma remarque est celle d'un debutant :D. A première vue, je constate que RF utilise Ajax, donc du JavaScript. Je ne connais ni le JavaScript ni Ajax. Mais tu m'apprends doublement quelques choses ce matin:
Je suis en train de développer un site web avec EJB3 , JPA, Hibernate, JSF. Et je vois que je vais devoir ajouter (en tout cas, y passer un peu de temps) sur RF. Ta réponse va m'y aider:
Pruderic
Content de t'éclairer :)
Quand on se lance dans la création d'un site avec JSF, il m'apparaît évident de s'équiper avec des librairies externes de composants.
RF est sans doute l'une des plus attrayante aujourd'hui, mais il en existe d'autres...
Toutes (à ma connaissance) se servent de Javascript, qui apparaît quasi incontournable dès que tu souhaites faire des choses sympa en HTML.
Rassures toi, tu n'as cependant pas besoin de connaître le Javascript pour utiliser les composants RF, puisque c'est leur tâche à eux de le créer et le gérer...
Je recommande de plus l'utilisation des facelets. Je te laisse jeter un coup d'oeil sur le tutorial de djo.mos à ce sujet (ici).