Bonjour,
J'ai un problème un peu particulier. J'utilise dans une page jsp (maPage.jsp) un tableau avec pagination comme ceci :
Et dans ma servlet test1, j'ai le code suivant :
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 <% int cpt = 0; int d = (Integer.parseInt(request.getAttribute("currentPage").toString()) - 1) * Integer.parseInt(request.getAttribute("recordsPerPage").toString()); int f = d + Integer.parseInt(request.getAttribute("recordsPerPage").toString()) - 1; %> <c:forEach begin="<%=d%>" end="<%=f%>" var="myObject" items="${requestScope.liste1}"> <form id="form1" class="form1" method="post" action="<c:url value='/test/test1'/>"> <tr> <th align ="center"> <input type="text" value="${myObject}"/> <input class="myButton" type="submit" name="myButton" value=" "> </th> </tr> </form> </c:forEach> <c:if test="${currentPage != 1}"> <table class="table_placeholderContent_pagination" border="0"> <tr> <form id="form_pagination" method="post" action="<c:url value='/test/test1'/>"> <input id="page" name="page" type="hidden" value="${currentPage - 1}" readonly="readonly"> <td><input class="inputPagination" type="submit" value="Previous"></td> </form> </tr> </table> </c:if> <table class="table_placeholderContent_pagination" border="0"> <tr> <c:forEach begin="1" end="${nbPages}" var="i"> <c:choose> <c:when test="${currentPage eq i}"> <td><input class="inputPagination1" type="button" value="${i}"></td> </c:when> <c:otherwise> <form id="form_pagination" method="post" action="<c:url value='/test/test1'/>"> <input id="page" name="page" type="hidden" value="${i}" readonly="readonly"> <td><input class="inputPagination" type="submit" value="${i}"></td> </form> </c:otherwise> </c:choose> </c:forEach> </tr> </table> <c:if test="${currentPage lt nbPages}"> <table class="table_placeholderContent_pagination" border="0"> <tr> <form id="form_pagination" method="post" action="<c:url value='/test/test1'/>"> <input id="page" name="page" type="hidden" value="${currentPage + 1}" readonly="readonly"> <td><input class="inputPagination" type="submit" value="Next"></td> </form> </tr> </table> </c:if>
Mon problème est le suivant :
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 @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int page = 1; int recordsPerPage = 5; int noOfRecords; int noOfPages; request.setAttribute("recordsPerPage", recordsPerPage); List<String> liste1 = new LinkedList<>(); liste1.add("test"); request.setAttribute("liste1", liste1); if (request.getParameter("myButton") != null) { // venir ici !!!! } if (request.getParameter("page") != null) { page = Integer.parseInt(request.getParameter("page")); } noOfRecords = liste1.size(); noOfPages = (int) Math.ceil(noOfRecords * 1.0 / recordsPerPage); request.setAttribute("nbPages", noOfPages); request.setAttribute("currentPage", page); this.getServletContext().getRequestDispatcher("maPage.jsp").forward(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
si nous sommes sur le 1er élément de la dernière page, alors le clic sur le bouton submit ne marchera pas (j'ai essayé avec un débuggeur, il ne rentre pas dans le if (request.getParameter("myButton") != null), je ne comprends pas pourquoi !
par exemple, si comme ici nous avons qu'un seul élément dans la liste, alors nous sommes sur la page 1 qui est la dernière page. Et comme nous cliquons également sur le bouton de la ligne 1 (qui est également la dernière de cette dernière page), eh bien ça ne marche pas !
Si vous ne comprenez pas dans quel cas ça ne marche pas pcq je me suis mal exprimé, n'hésitez pas à me le dire et je ré-expliquerai !
dans tous les autres cas (si la liste est plus grande et qu'on clique sur n'importe quel autre bouton de n'importe quelle ligne à part la dernière de la dernière page), ça fonctionne (il rentre bien dans le if)
Vous comprenez pourquoi vous ??!
Partager