J'ai une propriété de type Set dans ma bean et je souhaiterai y acceder dans ma page via une balise jsf <inputText> en utilisant EL, quelqu'un a une idée?
J'ai une propriété de type Set dans ma bean et je souhaiterai y acceder dans ma page via une balise jsf <inputText> en utilisant EL, quelqu'un a une idée?
Un Set est une liste, or un inputText ne peut faire référence qu'à un élément. Difficile de faire le lien entre un Set et un inputText dans ce cas...
Peux-tu expliquer un peu plus en détails ce que tu souhaites faire ?
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
une classe client avec une propriété contacts
dans ma classe controller j'ai une propriété qui pointe vers la classe client
Code : Sélectionner tout - Visualiser dans une fenêtre à part private Set<Personne> contacts = new HashSet();
Je souhaite insérer un contact au client via page contact dont voici la déclaration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @ManagedBean(name = "clientController") @SessionScoped public class ClientController { private Client current; ...
Ceci retourne un message d'erreur parceque l'expression en rouge renvois un Set non un objet de type contact (Personne).
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
26 <h:form id="form_create_personne"> <h:panelGrid columns="2"> <h:outputLabel value="#{bundle.CreatePersonneLabel_nom}" for="nom" /> <h:inputText styleClass="text" id="nom" value="#{clientController.selected.contacts.nom}" title="#{bundle.CreatePersonneTitle_nom}" /> <h:outputLabel value="#{bundle.CreatePersonneLabel_prenom}" for="prenom" /> <h:inputText styleClass="text" id="prenom" value="#{clientController.selected.contacts.prenom}" title="#{bundle.CreatePersonneTitle_prenom}" /> <h:outputLabel value="#{bundle.CreatePersonneLabel_email}" for="email" /> <h:inputText styleClass="text" id="email" value="#{clientController.selected.contacts.email}" title="#{bundle.CreatePersonneTitle_email}" /> <h:outputLabel value="#{bundle.CreatePersonneLabel_gsm}" for="gsm" /> <h:inputText styleClass="text" id="gsm" value="#{clientController.selected.contacts.gsm}" title="#{bundle.CreatePersonneTitle_gsm}" /> <h:outputLabel value="#{bundle.CreatePersonneLabel_telephone}" for="telephone" /> <h:inputText styleClass="text" id="telephone" value="#{clientController.selected.contacts[0].telephone}" title="#{bundle.CreatePersonneTitle_telephone}" /> <h:outputLabel value="#{bundle.CreatePersonneLabel_fax}" for="fax" /> <h:inputText styleClass="text" id="fax" value="#{clientController.selected.contacts.fax}" title="#{bundle.CreatePersonneTitle_fax}" /> </h:panelGrid> <h:commandLink action="next" value="#{bundle.AddNew}"/><br/> <h:commandLink action="#{clientController.create}" value="#{bundle.CreateClientSaveLink}"/><br/> <h:commandLink action="#{clientController.prepareList}" value="#{bundle.CreateClientShowAllLink}" immediate="true"/><br/> <h:commandLink value="#{bundle.CreateClientIndexLink}" action="/index" immediate="true"/><br/> </h:form>
comment faire pour accéder à l'objet via EL
En fait tu ne peux pas procéder ainsi.
Il te faut créer un contact intermédiaire dans ta classe Personne, genre tmpContact (en fournissant un getter et en pesant à toujours l'initialiser pour éviter les NPE) et ensuite, tu pourras y accéder dans tes ELs:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <h:inputText value="#{clientController.selected.tmpContact.nom}" .../>
Ensuite, dans ton bouton action de création du contact, il te suffira (après validation) d'ajouter le tmpContact dans ta liste de contact :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public String create() { ... selected.getContacts().add(selected.getTmpContact()); ... }
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
C'est bien à quoi je pensais, merci bcp tu me confortes dans ma solution.
Partager