Bonjour
J'utilise un filtre pour lister des données provenant de ma BD.
Le problème est que lorsque j'ajoute de nouvelles données dans la BD et que j'actualise la page, ces nouvelles données ne s'affichent pas ma liste. Et même quand je redémarre le navigateur ou le serveur tomcat, j'ai toujours le même problème. Je dois attendre quelques heures pour que ma liste s'actualise.
Voici ma Class PrechargementFilter
Voici ma page jsp:
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 package filters; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import beans.Offre; import dao.DAOFactory; import dao.OffreDao; public class PrechargementFilter implements Filter { public static final String CONF_DAO_FACTORY = "daofactory"; public static final String ATT_SESSION_OFF = "offres"; private OffreDao offreDao; public void init( FilterConfig config ) throws ServletException { /* Récupération d'une instance de nos DAO Client et Commande */ this.offreDao = ( (DAOFactory) config.getServletContext().getAttribute( CONF_DAO_FACTORY ) ).getOffreDao(); } public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain ) throws IOException, ServletException { /* Cast de l'objet request */ HttpServletRequest request = (HttpServletRequest) req; /* Récupération de la session depuis la requête */ HttpSession session = request.getSession(); if ( session.getAttribute( ATT_SESSION_OFF ) == null ) { /* * Récupération de la liste des clients existants, et enregistrement * en session */ List<Offre> listeOffres = offreDao.lister(); Map<Long, Offre> mapOffres = new HashMap<Long, Offre>(); for ( Offre offre : listeOffres ) { mapOffres.put( offre.getId(), offre ); } session.setAttribute( ATT_SESSION_OFF, mapOffres ); } /* Pour terminer, poursuite de la requête en cours */ chain.doFilter( request, res ); } public void destroy() { } }
D'où peut venir le problème?
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 <%-- Parcours de la Map des offres en session, et utilisation de l'objet varStatus. --%> <c:forEach items="${ sessionScope.offres }" var="mapOffres" varStatus="boucle"> <div class="${boucle.index % 2 == 0 ? 'indent3' : 'indent5'}"> <div class="row"> <div class="container bg"> <div class="container bg1"> <div class="container bg2"> <div class="container bg3"> <div class="col-1"><c:out value="${ mapOffres.value.dateLimite }"/></div> <div class="col-2"><a href="<c:url value="/pages/offres/cosef/${ mapOffres.value.poste }"/>" target="blank"><c:out value="${ mapOffres.value.poste }"/><span></span> </a></div> <div class="col-3"><c:out value="${ mapOffres.value.nomEmploy }"/></div> <div class="col-4"><c:out value="${ mapOffres.value.typeOffre }"/></div> <div class="col-5" ><a class ="voir_offre" href="<c:url value="/pages/offres/cosef/${ mapOffres.value.nomOffre }"/>" target="blank">Voir l'offre</a></div> </div> </div> </div> </div> </div> </div> </c:forEach>
Partager