Hello,

J'ai dans ma page JSF ajouté la possibilité d'ajouter un élément dans une liste, lorsque l'utilisateur les données sont remplis à partir des données séléctionnés (l'utilisateur modifie ensuite ces données pour qu'elles correspondent aux nouvelles données) -je sais pas si c'est assez clair-

Tout ce passe bien pour l'ajout qui se fait par le biais de cette méthode

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
 
public void addLinkedLocalisation(ActionEvent event) {
if (mainParcelle != null) {
    Localisation newLocalisation = new Localisation();
    newLocalisation.setAdresse(selectedParcelle.getAdresse());
    newLocalisation.setCoordonneeX(selectedParcelle.getCoordonneeX());
    newLocalisation.setCoordonneeY(selectedParcelle.getCoordonneeY());
    newLocalisation.setLieuDit(selectedParcelle.getLieuDit());
    newLocalisation.setNoDetache(selectedParcelle.getNoDetache());
    newLocalisation.setNoParcelle(selectedParcelle.getNoParcelle());
    newLocalisation.setNoSecteur(selectedParcelle.getNoSecteur());
    newLocalisation.setProvenanceCoordonnees(selectedParcelle.getProvenanceCoordonnees());
  newLocalisation.setSurfaceParcelle(selectedParcelle.getSurfaceParcelle());
  newLocalisation = remoteParcelleDao.save(newLocalisation);
  mainParcelle.getParcellesDetachees().add(newLocalisation);
  remoteParcelleDao.update(mainParcelle);
 List<LocalisationBean> beans = this.rowSelectControllerLocalisation.getLocalisationInventory();
  beans.add(new LocalisationBean(newLocalisation));
  this.rowSelectControllerLocalisation.setLocalisationInventory(beans);
  this.selectedParcelle = mainParcelle;
 }
}
A la fin du traîtement je fais un this.selectedParcelle = mainParcelle;
pour tenter de récupérer les données lors de l ouverture de la page (je cherche à récupérer les données de l'élément séléctionner avant l'ouverture)

Cependant le formulaire (this.selectedParcelle) contient toujours les données que l'utilisateur vient de rentrer


Voici le code JSF correspondant

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
 
						<ice:panelTab label="Localisation">
							<ice:panelGrid columns="3">
								<ice:outputText value="Lieu dit"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.lieuDit}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="Coordonnee x"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.coordonneeX}" id="coordonneeX">
						            <f:validateLongRange maximum="600000" minimum="530000"/>
         						</ice:inputText>
         						<ice:message style="color: red;" id="coordonneeXError" for="coordonneeX" />
 
								<ice:outputText value="Coordonnee y"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.coordonneeY}" id="coordonneeY">
								    <f:validateLongRange maximum="210000" minimum="140000"/>
								</ice:inputText>
								<ice:message style="color: red;" id="coordonneeYError" for="coordonneeY"/>
 
								<ice:outputText value="Provenance coordonnees"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.provenanceCoordonnees}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="No secteur"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.noSecteur}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="No parcelle"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.noParcelle}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="No detache"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.noDetache}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="Surface parcelle"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.surfaceParcelle}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="Rue"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.adresse.rue}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="No de rue"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.adresse.noDeRue}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="No postal"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.adresse.npa}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="Localite"></ice:outputText>
								<ice:inputText value="#{sessionBean.selectedParcelle.adresse.localite}"></ice:inputText>
								<ice:outputText value=""></ice:outputText>
 
								<ice:outputText value="Parcelle liees"></ice:outputText>
								<ice:dataTable id="localisation" var="localisation"
									value="#{rowSelectControllerLocalisation.localisationInventory}"
									rows="20" 
									border="2">
									<ice:column>
										<f:facet name="header">
											<ice:outputText value="Id de la localisation" />
										</f:facet>
										<ice:rowSelector value="#{localisation.selected}"
											selectionListener="#{rowSelectControllerLocalisation.rowSelectionListener}" />
										<ice:outputText value="#{localisation.localisation.id}" />
									</ice:column>
									<ice:column>
										<f:facet name="header">
											<ice:outputText value="Lieu dit" />
										</f:facet>
										<ice:outputText value="#{localisation.localisation.lieuDit}" />
									</ice:column>
									<ice:column>
										<f:facet name="header">
											<ice:outputText value="Coordonee X" />
										</f:facet>
										<ice:outputText value="#{localisation.localisation.coordonneeX}" />
									</ice:column>
									<ice:column>
										<f:facet name="header">
											<ice:outputText value="Coordonee Y" />
										</f:facet>
										<ice:outputText value="#{localisation.localisation.coordonneeY}" />
									</ice:column>
								</ice:dataTable>
								<ice:commandButton id="buttonAddLocalisation" value="Ajouter une parcelle liee"	actionListener="#{sessionBean.addLinkedLocalisation}" />
 
								<ice:outputLabel for="">&nbsp;</ice:outputLabel>
								<ice:outputLabel for="">&nbsp;</ice:outputLabel>
								<ice:outputLabel for="">&nbsp;</ice:outputLabel>
								<ice:outputLabel for="">&nbsp;</ice:outputLabel>
							</ice:panelGrid>
						</ice:panelTab>