Bonjour,

J'ai du mal à récupérer les données sélectionnées dans un dataTable après modification.

Voila le code de la page XHTML :

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
<prime:dataTable var="ct" value="#{cityBean.citys}" id="tbl" editMode="cell"
					paginator="true" rows="10" editable="true" widgetVar="citysTable">
 
					<f:facet name="header">  
            			In-Cell Editing  
        			</f:facet>
					<prime:ajax event="cellEdit" listener="#{cityBean.onCellEdit}"
						update=":form:messages" />
					<prime:column headerText="City" style="width:30%">
						<prime:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{ct.city}" />
							</f:facet>
							<f:facet name="input">
								<prime:inputText value="#{ct.city}" style="width:100%" />
							</f:facet>
						</prime:cellEditor>
					</prime:column>
				</prime:dataTable>

Le ManagedBean:

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
96
97
98
99
100
101
102
103
104
@ManagedBean(name = "cityBean")
@RequestScoped
public class CityBean implements Serializable {
 
	private City city;
	private List<City> citys;
	private CityService cityService;
 
	public CityBean() {
		this.city = new City();
		cityService = new CityService();
	}
 
	public List<City> getCitys() {
		citys = cityService.getAll();
		System.out.println("size : " + citys.size());
		return citys;
	}
 
	public City getcity() {
		return city;
	}
 
	public void setCity(City city) {
		this.city = city;
	}
 
	public void setCitys(List<City> citys) {
		this.citys = citys;
	}
 
	public City getCity() {
		return city;
	}
 
	public String onCreateAction() {
		String etat = null;
		cityService = new CityService();
		FacesContext context = FacesContext.getCurrentInstance();
		if (cityService.add(this.city)) {
 
			this.city = new City();
			context.addMessage(null, new FacesMessage(
					"Réparation ajouté avec succé"));
		} else {
			context.addMessage(null, new FacesMessage(
					FacesMessage.SEVERITY_ERROR, "Réparation non ajouté !",
					null));
		}
		return null;
	}
 
	public String onUpdateAction() {
		cityService = new CityService();
		FacesContext context = FacesContext.getCurrentInstance();
		City c = cityService.getById(this.city.getId());
		if (cityService.update(c)) {
			this.city = new City();
		} else {
			context.addMessage(null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Modification réussie !", null));
		}
		return "retourUpdate";
	}
 
	public String onDeleteAction() {
		cityService = new CityService();
		FacesContext context = FacesContext.getCurrentInstance();
		if (cityService.delete(city)) {
			this.city = new City();
		} else {
			context.addMessage(null, new FacesMessage(
					FacesMessage.SEVERITY_ERROR, "City non supprimé !", null));
		}
		return null;
	}
 
	public void onEdit(RowEditEvent event) {
 
//		DataTable o = (DataTable) event.getSource();
		this.city = (City) event.getObject();
		System.out.println("city = "+this.city.getCity());
		FacesMessage msg = new FacesMessage("Car Edited", this.city.getCity());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}
 
	public void onCancel(RowEditEvent event) {
		FacesMessage msg = new FacesMessage("Car Cancelled",
				((City) event.getObject()).getId() + "");
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}
 
	public void onCellEdit(CellEditEvent event) {  
        Object oldValue = event.getOldValue();  
        Object newValue = event.getNewValue();  
        System.out.println("old = "+oldValue);
        System.out.println("new = "+newValue);
        if(newValue != null && !newValue.equals(oldValue)) {  
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);  
            FacesContext.getCurrentInstance().addMessage(null, msg);  
        }  
    }  
}

Merci d'avance