svp j'aimerais savoir comment tester si un dataModel est vide ou pas ?
svp j'aimerais savoir comment tester si un dataModel est vide ou pas ?
je reformule ma question:
je travaille avec le composant dataTable et un certain moment j'effectue une requête qui me permet de selectionner une liste des clients, tout ca marche nickel mon seul souci mnt est d'afficher un message comme quoi la table est vide .voila merci
tu peut faire ça avec le EL (expression language) et la librairie JSTL, du côté de t'as page, voila comment je procède:
tester si la liste est vide:
JSTL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <c:if test="${!empty tonBean.list}"> <rich:table....> </c:if> <c:if test="${empty tonBean.list}"> <h:outputLabel value="ton message, genre base de données vide" /> </c:if>
JSTL
EL:
Expression Language
stp tu peux me guider vers les jars que je dois utiliser pr travailler avec JSTL?
évite de mixer jstl et jsf, ca fonctionne pas très bien ensemble car pas fait pour.
Préfère ce genre de code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:datatable value="#{monBean.list}" rendered="#{not empty monBean.list}" .....> .... </h:datatable> <h:outputText rendered="#{empty monBean.list}" value="pas de table à afficher"/>
oui merci, mais comment implémenter la méthode isEmpty(si vide) pour un datamodel dans le bean?
on peut voir le code de ton bean?
oui merci, voilà le code de mon bean:
je trouve pas la méthode qui remplace isEmpty pr le datamodel
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185 package Model; import java.util.ArrayList; import java.util.List; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import javax.faces.model.SelectItem; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import entity.Agence; import entity.Carte; import entity.Client; import session.CarteBeanRemote; import session.ClientBeanRemote; public class CarteBean { private DataModel DataModel; private Carte card=new Carte(); private ArrayList<SelectItem> ListeClients; private DataModel DM; private boolean tableVide; public CarteBean(){ } public DataModel getDataModel() { CarteBeanRemote card_dao=this.getContext(); if (DataModel == null) { DataModel = new ListDataModel(); DataModel.setWrappedData(card_dao.getCartes()); } return DataModel; } public void setDataModel(DataModel DataModel) { this.DataModel = DataModel; } public CarteBeanRemote getContext(){ CarteBeanRemote adm_dao=null; try { Context cntx = new InitialContext(); adm_dao=(CarteBeanRemote)cntx.lookup("Carte/Remote"); } catch (NamingException e) { e.printStackTrace(); } return adm_dao; } @SuppressWarnings("unchecked") public boolean isTableVide() { return (DM == null) || DM.isEmpty(); } public void setTableVide(boolean tableVide) { this.tableVide = tableVide; } public void selectionneElement(ActionEvent evt) { //Recuperer la ligne card = (Carte) DataModel.getRowData(); } public String b4_Update(){ card=(Carte) DataModel.getRowData(); return "modifCard"; } public String Delete(){ card=(Carte) DataModel.getRowData(); CarteBeanRemote card_dao=this.getContext(); card_dao.remove(card); DataModel.setWrappedData(card_dao.getCartes()); card=new Carte(); return null; } public String Create(){ CarteBeanRemote card_dao=this.getContext(); card_dao.create(card); this.getDataModel(); //DataModel.setWrappedData(card_dao.getCartes()); return "listCarte"; } public String Update(){ //card=(Carte) DataModel.getRowData(); CarteBeanRemote card_dao=this.getContext(); card_dao.update(card); this.getDataModel(); //DataModel.setWrappedData(card_dao.getCartes()); //card=new Carte(); return "listCarte"; } public ArrayList<SelectItem> getListeClients() { ArrayList<SelectItem> ListeClients = null; try{ ArrayList<Client> l=new ArrayList<Client>(); ListeClients=new ArrayList<SelectItem>(); ClientBean clt= new ClientBean(); ClientBeanRemote clt_dao=clt.getContext(); l=(ArrayList<Client>) clt_dao.getClients(); int total=l.size(); for(int i=0;i<total;i++){ Client c=l.get(i); ListeClients.add(new SelectItem(c.getId_Client(),c.getFirst_name()+" "+c.getLast_name())); } }catch(Exception e){e.printStackTrace();} return ListeClients; } public Carte getCard() { return card; } public void setCard(Carte card) { this.card = card; } public String New(){ card=new Carte(); return null; } public String logOut(){ DataModel=null; return "logout"; } //recuperer la liste des cartes de clients public DataModel getDM() { ClientBean agc_b = (ClientBean)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("clientBean"); Client clt=agc_b.getClt(); DM = new ListDataModel(); DM.setWrappedData(this.getContext().getCrt_Clt(clt)); return DM; } public void setDM(DataModel dm) { this.DM = dm; } }
devrait faire l'affaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part (dataModel.getRowcount()==0)
merci bien tchize je vais tester
merci bien tchize ca marche nickel
Partager