Bonjour
j'ai un petit soucis de mise a jour d'un bean entre deux pages jsf
ma première page :
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
27
28
29
30
31
32
33
34
35
36
37 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:composition template="layout_main.xhtml"> <ui:define name="contenu"> <body> <h:dataTable id="bankList" value="#{toto.allBanks}" var="bank" > <f:facet name="header"> #{msg['page.banklist.table.title']} </f:facet> <h:column> <h:commandLink value="#{msg['page.banklist.table.link.bank.edit']}" action="#{toto.showBanksDetailPage(bank)}" /> </h:column> <h:column> <h:outputText value="#{msg['page.banklist.table.header.bank.id']}" /> </h:column> <h:column headerText="#{msg['page.banklist.table.header.bank.name']}"> <h:outputText value="#{bank.name}" /> </h:column> </h:dataTable> </body> </ui:define> </ui:composition> </html>
Quand je clique sur le lien h:commandLink j'ai bien ma seconde page qui s'affiche :
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
27
28 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:composition template="layout_main.xhtml"> <ui:define name="contenu"> <body> <h:form> <h:outputLabel for="title" value="Titles" /> <h:inputText id="title" value="#{toto.bank.name}" required="true" requiredMessage="Bank name is required" validatorMessage="Max length is 10"> <f:validateLength maximum="10" /> </h:inputText> </h:form> </body> </ui:define> </ui:composition> </html>
Sauf que le champ
est vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:inputText id="title" value="#{toto.bank.name}" required="true" requiredMessage="Bank name is required" validatorMessage="Max length is 10"> <f:validateLength maximum="10" /> </h:inputText>
Voici le bean Toto :
Comme les deux pages partagent le même formulaire (Toto) la seconde devrait voir la propriété Bank ?
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
27
28
29
30
31
32
33
34
35
36
37
38
39 @Named @SessionScoped public class Toto implements Serializable { private static final long serialVersionUID = 1118351396911753744L; @EJB BankService bankService = null; private Bank bank; public List<Bank> getAllBanks() { return bankService.getAllBanks(); } public String showBanksDetailPage(Bank bank) { this.bank = bank; return "adminBankDetails"; } public BankService getBankService() { return bankService; } public void setBankService(BankService bankService) { this.bankService = bankService; } public Bank getBank() { return this.bank; } public void setBank(Bank bank) { this.bank = bank; } }
mais c'est vide, et je pige pas.
merci d'avance.
Partager