Si tu ne trouves pas comment faire ton affichage avec une EL, tu peux aussi le faire en java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a class="nom"><%=conges.getUsers().getNom()+" "+conges.getUsers().getPrenom()%></a>
Si tu ne trouves pas comment faire ton affichage avec une EL, tu peux aussi le faire en java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a class="nom"><%=conges.getUsers().getNom()+" "+conges.getUsers().getPrenom()%></a>
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
On ne peux pas "additionner" des string en EL et je ne vois pas pourquoi tu te casse la nenette avec de la concaténation.
Le plus simple, c'est de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a class="nom">${conges.users.nom} ${conges.users.prenom}</a>
Merci sa fonctionne
J'ai plus qu'à m'occuper de mes dates pour avoir un affiche au format français
J'ai utiliser le simpleDateFormat pour mettre en Français mais sa ne veut pas m'afficher mes dates. J'ai un println dans la console et la conversion se passe bien
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 <% SimpleDateFormat formater = new SimpleDateFormat("dd-MM-yyyy"); if(users.getRank().equals("admin") || users.getRank().equals("root")){ List<Conges> congeStatut = new ArrayList<Conges>(); congeStatut = (List<Conges>)request.getAttribute("congeStatut"); %> <c:forEach items="${ congeStatut }" var="conges"> <%Conges conges = (Conges)pageContext.getAttribute("conges");%> <tr> <td> <% if(!conges.getCommentaires().equals("")){ %> <a class="name" rel="tooltip" data-original-title="${conges.getCommentaires()}" href="#">${conges.getUsers().getNom()} ${conges.getUsers().getPrenom()} <i class="icon-comment"></i></a> <% }else{ %> <a class="nom">${conges.getUsers().getNom()} ${conges.getUsers().getPrenom()}</a> <% } %> <span class="subtext">${conges.getUsers().getFonction()}</span> </td> <% String dateDepot = formater.format(conges.getDepot()); %> <td>${dateDepot}</td>
"Ça veut pas afficher mes dates", ça ne veut rien dire : quand tu poses une question, dis quelle exception tu obtiens, ou quel comportement (ici affichage) tu obtiens et quel comportement tu voudrais obtenir.
Là, tu déclares une variable dans le code java (par scriptlet) :
et la tu affiches une expression de type EL/JSTL par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <% String dateDepot = formater.format(conges.getDepot()); %>
Tu mélanges deux choses. Pour créer une variable affichable par EL, il faut utiliser c:set et l'afficher par c:out ... ON peut passer des valeurs entre les deux domaines (une variable jstl c'est un attribut dans un context (scope)).
Code : Sélectionner tout - Visualiser dans une fenêtre à part <td>${dateDepot}</td>
Tu peux également directement mettre dans le flux de la page générée par la jsp par :
Tu devrais peut être reprendre les tutoriels à la base pour bien comprendre les jsp, les scriplets et jstl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%=formater.format(conges.getDepot())%>
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
J'ai réussi à afficher mes dates correctement
Maintenant je dois voir comment je fait pour appeler une requete et aussi pour ouvrir un fichier PDF:
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 <%@ include file="includes/header.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="fr.intranet.models.*"%> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <% Users users = (Users) request.getSession().getAttribute("util"); if (users == null) { response.sendRedirect("index"); }else{ %> <!-- sidebar --> <div id="sidebar-nav"> <ul id="dashboard-menu"> <li class="active"> <div class="pointer"> <div class="arrow"></div> <div class="arrow_border"></div> </div> <a href="accueil"> <i class="icon-home"></i> <span>Accueil</span> </a> </li> <% if(!users.getRank().equals("utilisateur")){ %> <li> <a class="dropdown-toggle" href="#"> <i class="icon-folder-open-alt"></i> <span>Client</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="listeclient">Consultation</a></li> <li><a href="newclient">Création</a></li> </ul> </li> <% }else{ %> <li> <a href="listeclient"> <i class="icon-folder-open-alt"></i> <span>Client</span> </a> </li> <% } if(!users.getRank().equals("utilisateur")){ %> <li> <a class="dropdown-toggle" href="#"> <i>@</i> <span>Site</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="listesite">Consultation</a></li> <li><a href="plussite">Création</a></li> </ul> </li> <% }else{ %> <li> <a href="listesite"> <i>@</i> <span>Site</span> </a> </li> <% } if(!users.getRank().equals("utilisateur")){ %> <li> <a class="dropdown-toggle" href="#"> <i class="icon-phone"></i> <span>Contact</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="listecontact">Consultation</a></li> <li><a href="pluscontact">Création</a></li> </ul> </li> <% }else{ %> <li> <a href="listecontact"> <i class="icon-phone"></i> <span>Contact</span> </a> </li> <% } if(!users.getRank().equals("utilisateur")){ %> <li> <a class="dropdown-toggle" href="#"> <i class="icon-book"></i> <span>Freelance</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="freelance">Consultation</a></li> <li><a href="newfreelance">Création</a></li> </ul> </li> <% }else{ %> <li> <a href="freelance"> <i class="icon-book"></i> <span>Freelance</span> </a> </li> <% } %> <li> <a href="frais"> <i class="icon-euro"></i> <span>Note frais</span> </a> </li> <li> <a class="dropdown-toggle" href="#"> <i class="icon-plane"></i> <span>Congés</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="conges">Consultation</a></li> <li><a href="newconges">Demande</a></li> </ul> </li> <% if(users.getRank().equals("admin") || users.getRank().equals("root")){ %> <li> <a class="dropdown-toggle" href="#"> <i class="icon-group"></i> <span>Utilisateurs</span> <i class="icon-chevron-down"></i> </a> <ul class="submenu"> <li><a href="user">Consultation</a></li> <li><a href="newuser">Création</a></li> </ul> </li> <% } %> <li> <a href="corbeille"> <i class="icon-trash"></i> <span>Corbeille</span> </a> </li> </ul> </div> <!-- end sidebar --> <!--script--> <script type="text/javascript" src="./assets/js/jquery.uitablefilter.js"></script> <script> //Fonction pour filtre $(function() { var theTable = $('table.filter_conges'); $("#filter").keyup(function() { console.log(this.value); $.uiTableFilter( theTable, this.value ); }) }); //Fonction pour filtre $(function() { var theTable = $('table.filter_fiche'); $("#filter1").keyup(function() { console.log(this.value); $.uiTableFilter( theTable, this.value ); }) }); //Fonction pour info bulle $(function (){ $('a').tooltip({placement:'top'}); }); </script> <!-- main container --> <div class="content"> <div id="pad-wrapper" class="users-list"> <!-- SESSION CREATION CONGE A AJOUTER --> <!-- table sample --> <!-- the script for the toggle all checkboxes from header is located in js/theme.js --> <div class="row head"> <div class="col-md-12"> <h4>Demande de congés</h4> </div> </div> <div class="row filter-block"> <div class="pull-right"> <input type="text" name = "filter" id="filter" class="search" value ="" placeholder="Rechercher un congés"> <a class="btn-flat new-product" href="newconges.php">+ Demande congés</a> </div> </div> <br> <!-- Users table --> <div class="row"> <div class="col-md-12"> <table class="table table-hover filter_conges"> <thead> <tr> <th class="col-md-2 sortable"> Salarie </th> <th class="col-md-2 sortable"> <span class="line"></span>Depot </th> <th class="col-md-2 sortable"> <span class="line"></span>Type </th> <th class="col-md-2 sortable"> <span class="line"></span>Debut </th> <th class="col-md-2 sortable"> <span class="line"></span>Fin </th> <th class="col-md-2 sortable"> <span class="line"></span>Statut </th> </tr> </thead> <tbody> <% if(users.getRank().equals("admin") || users.getRank().equals("root")){ List<Conges> congeStatut = new ArrayList<Conges>(); congeStatut = (List<Conges>)request.getAttribute("congeStatut"); %> <c:forEach items="${ congeStatut }" var="conges"> <%Conges conges = (Conges)pageContext.getAttribute("conges");%> <tr> <td> <% if(!conges.getCommentaires().equals("")){ %> <a class="name" rel="tooltip" data-original-title="${conges.getCommentaires()}" href="#">${conges.getUsers().getNom()} ${conges.getUsers().getPrenom()} <i class="icon-comment"></i></a> <% }else{ %> <a class="nom">${conges.getUsers().getNom()} ${conges.getUsers().getPrenom()}</a> <% } %> <span class="subtext">${conges.getUsers().getFonction()}</span> </td> <td><fmt:formatDate value="${conges.getDepot()}" pattern="dd/MM/yyyy"/></td> <td>${conges.getTypeConges()}</td> <td><fmt:formatDate value="${conges.getDateDbt()}" pattern="dd/MM/yyyy"/></td> <td><fmt:formatDate value="${conges.getDateFin()}" pattern="dd/MM/yyyy"/></td> <td> <% if(conges.getStatut().equals("Annulé")){ %> <a class="gras" href="requete/dltconges?idConges=${conges.getId()}" onclick="return confirm('Cette annulation supprimera définitivement le congé. Etes vous sûr de vouloir faire cette action ?');"><span class="label label-warning">Annulé</span></a> <% }else{ %> <table> <tr> <td><a class="gras" href="pdf/conges?idConges=${conges.getId()}" target="_blank" onclick="window.location.href='requete/accepte?idConges=${conges.getId()}'"><span class="label label-success">Accepté</span></a></td> <td> </td> <td><a class="gras" href="requete/refuse?idConges=${conges.getId()}"><span class="label label-danger">Refusé</span></a></td> </tr> </table> <% } %> </td> </tr> </c:forEach> <% }else{ List<Conges> congeUser = new ArrayList<Conges>(); congeUser = (List<Conges>)request.getAttribute("congeUser"); %> <c:forEach items="${ congeUser }" var="conges"> <%Conges conges = (Conges)pageContext.getAttribute("conges");%> <tr> <td> <a class="nom">${conges.getUsers().getNom()} ${conges.getUsers().getPrenom()}</a> <span class="subtext">${conges.getUsers().getFonction()}</span> </td> <td><fmt:formatDate value="${conges.getDepot()}" pattern="dd/MM/yyyy"/></td> <td>${conges.getTypeConges()}</td> <td><fmt:formatDate value="${conges.getDateDbt()}" pattern="dd/MM/yyyy"/></td> <td><fmt:formatDate value="${conges.getDateFin()}" pattern="dd/MM/yyyy"/></td> <td> <div class="icone"> <span> <% if(conges.getStatut().equals("Accepté")){ %> <span class="label label-success">${conges.getStatut()}</span> <% } if(conges.getStatut().equals("Refusé")){ %> <span class="label label-danger">${conges.getStatut()}</span> <% } if(conges.getStatut().equals("En attente")){ %> <span class="label label-info">${conges.getStatut()}</span> <% } if(conges.getStatut().equals("Annulé")){ %> <span class="label label-warning">${conges.getStatut()}</span> <% } %> <fmt:formatDate value="${conges.getDateAction()}" pattern="dd/MM/yyyy"/> </span> <ul class="actions"> <% if(conges.getStatut().equals("Accepté")){ %> <li class="last"><a rel="tooltip" href="pdf/conges?idConges=${conges.getId()}" onclick="window.open(this.href); return false;" data-original-title="PDF"><i class="attach"></i></a></li> <% } %> </ul> </div> </td> </tr> </c:forEach> <% } %> </tbody> </table> </div> </div> </div> </div> </div> <% } %> <!-- end main container --> </body> </html>
Avant j'avais ceci en php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <td><a class="gras" href="pdf/conges?idConges=${conges.getId()}" target="_blank" onclick="window.location.href='requete/accepte?idConges=${conges.getId()}'"><span class="label label-success">Accepté</span></a></td>
Je pense que je doit passer par ma servlet mais je vois pas comment l'appeler et ou mettre le code dedans car c'est ni du doGet ou du doPost pour moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part <td><a class="gras" href="pdf/conges.php?idConges=<?php echo $row1['idConges']?>" target="_blank" onclick="window.location.href='requete/accepte.php?idConges=<?php echo $row1['idConges']?>'"><span class="label label-success">Accepté</span></a></td>
Ben ce que tu nous montre en tout cas, c'est un Get, que ce soit ta version php ou java, je ne vois pas ce que tu veux que ce soit d'autre. Ce n'est certainement ni un PUt ni un HEAD
D'accord mais comment je doit faire pour appeler ma servlet car je vais faire une méthode dans ma classe DAO qui contiendra la requête sql et cette méthode doit être appeler seulement quand j'aurais cliquer sur le bouton. De même pour la création d'un fichier PDF
Par exemple pour ici je fait comment car je ne vois pas trop
Code : Sélectionner tout - Visualiser dans une fenêtre à part onclick="window.location.href='requete/accepte.php?idConges=<?php echo $row1['idConges']?>'">
par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part onclick="window.location.href='chemin/vers/ta/servlet?idConges=${row1['idConges']}'">
Mais sérieusement, foutre un onclick sur un <A>qui change l'url dans le browser, c'est totalement idiot. C'est à ça que sert l'attribut href du a, pas besoin de javascript qui fasse double emploi
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="chemin/vers/ta/servlet?idConges=${row1['idConges']}">cliquez ici</a>
D'accord
Mais ma méthode que je vais créer dans ma classe DAO, je doit aussi l'appeler dans la servlet mais quand je vais cliquer sur le bouton dans ma jsp comment elle va savoir ce qu'elle doit appeler comme méthode car je vais en appeler plusieurs dans ma servlet
Ben c'est toi le programmeur, c'est quand même à toi de savoir quelles méthodes t'as besoin d'appeler pour effectuer ton travail
Dans ma jsp aussi
E php je mettait directement le lien avec le script que je devais appeler alors que la j'ai une servlet pour ma page entière
Je ne vois pas le problème, ici t'as un lien vers la servlet qui fais le travail. C'est exactement comme en php.
En php,
Pour ligne:
j'appeler ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <td><a class="gras" href="pdf/conges.php?idConges=<?php echo $row1['idConges']?>" target="_blank" onclick="window.location.href='requete/accepte.php?idConges=<?php echo $row1['idConges']?>'"><span class="label label-success">Accepté</span></a></td>
Pour celle ci:
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 <?php ob_start(); session_start(); if (isset($_SESSION["pseudo"]) == false): header("Location:index.php"); endif; include("../includes/accesBDD.php"); //Récupération de l'id du Congés $idConges = $_GET['idConges']; //Récupération la date du jour et l'heure actuelle $date = date("Y-m-j H:i:s"); //Requête qui accepte les congés $req1 = "Update conges Set statut = :unStatut, dateAction = :uneDate Where conges.id = ".$idConges; //Préparation de la requête $res1 = $connexion->prepare($req1); //Exécution de la requête $res1->execute(array(':unStatut'=>'Accepté', ':uneDate'=>$date)); //Et redirection vers la page accueil.php pour rafraichir la liste header("location:../accueil.php" ); ?>
ce script là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <td><a class="gras" href="requete/refuse.php?idConges=<?php echo $row1['idConges']?>"><span class="label label-danger">Refusé</span></a></td>
Toutes ses requête vont se transformer en plusieurs méthodes dans ma classe CongesDAO.
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 <?php ob_start(); session_start(); if (isset($_SESSION["pseudo"]) == false): header("Location:index.php"); endif; include("../includes/accesBDD.php"); //Récupération de l'id du Congés $idConges = $_GET['idConges']; //Récupération la date du jour et l'heure actuelle $date = date("Y-m-j H:i:s"); //Requête qui refuse les congés $req1 = "Update conges Set statut = :unStatut, dateAction = :uneDate Where conges.id = ".$idConges; //Préparation de la requête $res1 = $connexion->prepare($req1); //Exécution de la requête $res1->execute(array(':unStatut'=>'Refusé', ':uneDate'=>$date)); //Et redirection vers la page accueil.php pour rafraichir la liste header("location:../accueil.php" ); ?>
Mais après ces méthodes je vais les mettre dans ma servlet mais comment faire pour que quand je clique sur le bouton dans la jsp, elle sache qu'elle méthode appeler et faut aussi que je puisse faire les redirection comme j'avais fais
Ben dans ta servlet "refuse" tu fera un dao.refuser(identifiantDuConge) et dans accepter tu fera un dao.accepter(identifiantduConge), j'ai franchement du mal à comprendre sur quoi tu bloque là.
Pour les redirections, tu as response.sendRedirect()
A la je comprend mieux, je doit faire une servlet pour chaque
Je pensais que je mettait tout dans ma servlet accueil comme les bouton se trouve sur l'accueil
Et donc je doit les mettre dans la méthode doGet de la Servlet?
Oui,
tu peux regrouper dans une seule servlet, mais alors il te faut un moyen de distinguer les actions. Par exemple un parapètre action=xxxx sur l'url en plus du id=xxxx
D'accord, Merci
Là j'ai un type char dans ma basse donc dans mon modèle j'ai mis l'attribut en type char. Mais là quand je récupère ma valeur dans ma requête il ne me propose pas de getChar
Donc je bloque ici:
A la place de getString, je souhaiterai avoir un getChar
Code : Sélectionner tout - Visualiser dans une fenêtre à part ficheFrais.setMois(resultat.getString("mois"));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager