Bonjour,
J'ai développé une application en Struts2 dans laquelle j'ai des jsp et où il y a des interrogation de base de donnée.
Dans mes jsp, j'ai mis des fonctions javascript. Jusque là, pas de soucis. Mon application fonctionne comme elle le devrait.
Là où j'ai un problème, c'est que certains utilisateur reste longtemps sur une même page, sans faire d'interrogation de base de données (ex : interruption par des personnes qui rentre dans leurs bureau et discute avec l'utilisateur, lenteur dans la saisi des informations dans le formulaire par l'utilisateur).
Ce qui fait, que au moment où il valide le formulaire, il se retrouve dans la page de connexion et rien n'est enregistré en base de donnée.
Je suppose (donc je ne suis pas sur) que le problème vient de la durée de vie de la session. Comment puis-je faire pour l'augmenter ?
LoginAction.java
Merci beaucoup de votre aide !
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384 package com.maison.enfant.gestion.horaire.action; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.maison.enfant.gestion.horaire.display.PersonneDisplay; import com.maison.enfant.gestion.horaire.dto.AbsenceDTO; import com.maison.enfant.gestion.horaire.dto.CompteurDTO; import com.maison.enfant.gestion.horaire.dto.DroitDTO; import com.maison.enfant.gestion.horaire.dto.PersonneDTO; import com.maison.enfant.gestion.horaire.dto.ServiceDTO; import com.maison.enfant.gestion.horaire.dto.SpecialisationDTO; import com.maison.enfant.gestion.horaire.dto.UniteDTO; import com.maison.enfant.gestion.horaire.ecartReport.EcartReport; import com.maison.enfant.gestion.horaire.ecartReport.IEcartRep; import com.maison.enfant.gestion.horaire.service.ICompteur; import com.maison.enfant.gestion.horaire.service.IPersonne; import com.maison.enfant.gestion.horaire.service.IService; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable; public class LoginAction extends ActionSupport{ //bean présent dans spring-service.xml private IPersonne personneService; private ICompteur compteurService; private IService serviceService; private IEcartRep ecartReportService; public IEcartRep getEcartReportService() { return ecartReportService; } public void setEcartReportService(IEcartRep ecartReportService) { this.ecartReportService = ecartReportService; } private List<PersonneDTO> listPersonneDtoByService; private List<PersonneDisplay> listPersonneDisplayByService; private List<PersonneDTO> listPersonneDto; private PersonneDisplay persDisp; private CompteurDTO compteurDto; private String idCompteurToLoad; private String validationCse; // Variable présente dans la jsp private String modificationLoad; private String observationLoad; private String annotationload; private String idCsemodif; private DroitDTO droitPersonneInSession; private PersonneDTO personneInSession ; private UniteDTO uniteChefService; //Attributs String login; String mdp; // Indique si la popin d'edition doit etre affichee private String popinIsLoaded; // objets DTO : acces direct sans interface, ni implémentation PersonneDTO persDto; public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getMdp() { return mdp; } public void setMdp(String mdp) { this.mdp = mdp; } public IPersonne getPersonneService() { return personneService; } public void setPersonneService(IPersonne personneService) { this.personneService = personneService; } public PersonneDTO getPersDto() { return persDto; } public void setPersDto(PersonneDTO persDto) { this.persDto = persDto; } public LoginAction(String login, String mdp) { super(); this.login = login; this.mdp = mdp; } public LoginAction() { super(); } //Méthode utilisée pou chager la popin pou valider la modification public String loadPopin() throws Exception { if (idCompteurToLoad!= null){ System.out.println("idCompteurToLoad : "+idCompteurToLoad); HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); PersonneDTO personneDto = personneService.getElmtOfAPersonne(this.login, this.mdp); this.personneInSession = (PersonneDTO) session.getAttribute("personne"); ServiceDTO serviceChefService = this.serviceService.getServiceByIdPersonne(this.personneInSession.getIdPersonne()); //System.out.println("serviceChefService : "+serviceChefService.getNomService()); UniteDTO uniteChefService = this.serviceService.getUniteDtoByIdService(serviceChefService.getIdService()); //System.out.println("uniteChefService : "+uniteChefService.getNomUnite()); this.listPersonneDisplayByService = this.personneService.getPersonneDisplayByUniteId(uniteChefService.getIdUnite()); CompteurDTO compteurDtoFromDataBase = this.compteurService.getCompteurById(Integer.parseInt(idCompteurToLoad)); this.compteurDto = compteurDtoFromDataBase; System.out.println("compteurDto : "+compteurDto.getIdCompteur()); this.popinIsLoaded = "Y"; return Action.NONE; } return Action.INPUT; } //Méthode pou enregistrer la validation public String save() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); String mode = "save"; if (idCompteurToLoad != null && !"".equals(this.idCompteurToLoad)){ mode = "update"; System.out.println("update"); } CompteurDTO compteurDto = new CompteurDTO(); compteurDto.setValidationCse(validationCse); compteurDto.setModif(modificationLoad); compteurDto.setObservation(observationLoad); compteurDto.setAnnotationsCse(annotationload); compteurDto.setIdCsemodif(Integer.parseInt(idCsemodif)); if ("update".equals(mode)){ compteurDto.setIdCompteur(Integer.parseInt(idCompteurToLoad)); } //on enregistre ou on met ç jour dans la BDD this.compteurService.saveOrUpdateCompteur(compteurDto); //on met à jour la liste avec la nouvelle entrée this.listPersonneDisplayByService = this.personneService.getPersonneDisplayByUniteId((Integer) session.getAttribute("idUniteChefDeService")); return Action.NONE; } //Méthode pour se connecter public String execute(){ HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); if(this.login != null && this.mdp !=null){ PersonneDTO personneDto = personneService.getElmtOfAPersonne(this.login, this.mdp); if (personneDto != null){ System.out.println(" personneDto non null"); System.out.println(" nom : "+personneDto.getNom()); System.out.println(" droit : "+personneDto.getDroitDTO().getIdDroit()); session.setAttribute("personne", personneDto); this.personneInSession = (PersonneDTO) session.getAttribute("personne"); boolean superUser = personneService.isSuperUser(personneInSession); ServiceDTO serviceChefService = this.serviceService.getServiceByIdPersonne(personneInSession.getIdPersonne()); //System.out.println("serviceChefService : "+serviceChefService.getNomService()); UniteDTO uniteChefService = this.serviceService.getUniteDtoByIdService(serviceChefService.getIdService()); System.out.println("uniteChefService : "+uniteChefService.getNomUnite()); //pour afficher la liste de toutes les absences session.setAttribute("idUniteChefDeService", uniteChefService.getIdUnite()); if ((superUser == true)&& (personneDto.getIdPersonne() != 3)) { this.listPersonneDto = this.personneService.getListPersonne(); } //Pour ne récupérer que la liste des personnes faisant parti de l'unite else if((personneDto.getIdPersonne() == 3)||(personneDto.getDroitDTO().getIdDroit()==3)){ this.listPersonneDisplayByService = this.personneService.getPersonneDisplayByUniteId(uniteChefService.getIdUnite()); System.out.println("listPersonneDisplayByService size: "+listPersonneDisplayByService.size()); } if (isFirstMonth()){ ecartReportService.reportDesEcart(); } return Action.NONE; } return Action.INPUT; }else { session.setAttribute("personne", ""); return Action.INPUT; } } //Méthode pour se déconnecter public String disconnect(){ HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); session.removeAttribute("personne"); return Action.INPUT; } //méthode pour réaliser un report des écarts des horaires réalisés //Pour récupérer le jour ou le courrier est saisie public boolean isFirstMonth(){ //Pour récupérer le jour ou le courrier est saisie Date day = new Date(); int month = day.getMonth(); if(month == 1){ return true; } else return false; } public List<PersonneDTO> getListPersonneDtoByService() { return listPersonneDtoByService; } public void setListPersonneDtoByService( List<PersonneDTO> listPersonneDtoByService) { this.listPersonneDtoByService = listPersonneDtoByService; } public List<PersonneDTO> getListPersonneDto() { return listPersonneDto; } public void setListPersonneDto(List<PersonneDTO> listPersonneDto) { this.listPersonneDto = listPersonneDto; } public IService getServiceService() { return serviceService; } public void setServiceService(IService serviceService) { this.serviceService = serviceService; } public DroitDTO getDroitPersonneInSession() { return droitPersonneInSession; } public void setDroitPersonneInSession(DroitDTO droitPersonneInSession) { this.droitPersonneInSession = droitPersonneInSession; } public PersonneDTO getPersonneInSession() { return personneInSession; } public void setPersonneInSession(PersonneDTO personneInSession) { this.personneInSession = personneInSession; } public List<PersonneDisplay> getListPersonneDisplayByService() { return listPersonneDisplayByService; } public void setListPersonneDisplayByService( List<PersonneDisplay> listPersonneDisplayByService) { this.listPersonneDisplayByService = listPersonneDisplayByService; } public String getIdCompteurToLoad() { return idCompteurToLoad; } public void setIdCompteurToLoad(String idCompteurToLoad) { this.idCompteurToLoad = idCompteurToLoad; } public String getPopinIsLoaded() { return popinIsLoaded; } public void setPopinIsLoaded(String popinIsLoaded) { this.popinIsLoaded = popinIsLoaded; } public ICompteur getCompteurService() { return compteurService; } public void setCompteurService(ICompteur compteurService) { this.compteurService = compteurService; } public CompteurDTO getCompteurDto() { return compteurDto; } public void setCompteurDto(CompteurDTO compteurDto) { this.compteurDto = compteurDto; } public PersonneDisplay getPersDisp() { return persDisp; } public void setPersDisp(PersonneDisplay persDisp) { this.persDisp = persDisp; } public String getValidationCse() { return validationCse; } public void setValidationCse(String validationCse) { this.validationCse = validationCse; } public String getModificationLoad() { return modificationLoad; } public void setModificationLoad(String modificationLoad) { this.modificationLoad = modificationLoad; } public String getObservationLoad() { return observationLoad; } public void setObservationLoad(String observationLoad) { this.observationLoad = observationLoad; } public UniteDTO getUniteChefService() { return uniteChefService; } public void setUniteChefService(UniteDTO uniteChefService) { this.uniteChefService = uniteChefService; } public String getAnnotationload() { return annotationload; } public void setAnnotationload(String annotationload) { this.annotationload = annotationload; } public String getIdCsemodif() { return idCsemodif; } public void setIdCsemodif(String idCsemodif) { this.idCsemodif = idCsemodif; } }
Partager