Bonjour,

J'ai un problème un peu particulier. J'utilise dans une page jsp (maPage.jsp) un tableau avec pagination comme ceci :

Java Code:
 
<%
    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>
Et dans ma servlet test1, j'ai le code suivant :
Java Code:
 
	@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);
    }
Mon problème est le suivant :
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 ??!

PS :

C'est un peu flou pour vous pcq j'ai généralisé et simplifié le code car tout ne peut pas être public !

Pourquoi j'ai fait ça, tout simplement pcq chaque ligne de mon tableau est un formulaire à lui seul (chaque ligne contient du blabla, et un bouton supprimer (ainsi que d'autres boutons mais c'est celui là qui pose problème))

Lors du clic sur ce fameux bouton, la ligne est censée être supprimée (et comme je l'ai dit auparavant, ça marche dans 99% des cas !)

Le seul cas d'erreur, c'est lors du clic sur le bouton supprimer du tout dernier élément de ma liste: il ne se passe rien pcq le request.getParameter('myButton') renvoie null..

Au cas où vous penseriez à cette cette solution : je ne peux donc pas mettre un form global, car chaque ligne est un formulaire !