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

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>
est vide

Voici le bean Toto :

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;
	}
}
Comme les deux pages partagent le même formulaire (Toto) la seconde devrait voir la propriété Bank ?

mais c'est vide, et je pige pas.

merci d'avance.