2014-09-30 2 views
2

У меня есть таблица, и я хочу, чтобы строки были пронумерованы.Сбросить переменную scriplet при обновлении

В моем JSP, у меня есть что-то вроде этого:

<%! int i = 0; %> 
<c:forEach items="${clients}" var="client"> 
    <tr> 
     <td align="center"><%= ++i %></td> 
     <td><c:out value="${client.nomPrenom}"/></td> 
.... 

Моя проблема когда я обновить страницу, переменная я не сбрасывается в 0. Это продолжается до ++

Что я делать неправильно?

ответ

2

Вы можете сделать это с помощью JSTL, как следует, как scriplets являются не рекомендуется на протяжении десятилетий

<c:forEach items="${clients}" var="client" varStatus="loop"> 
    <tr> 
     <td align="center"><c:out value="${loop.index}" /></td> 
     <td><c:out value="${client.nomPrenom}"/></td> 
    </tr> 
</ c:forEach> 

см How to avoid Java code in JSP files?, чтобы узнать больше об использовании JSTL и EL

+0

Спасибо большое за этот ответ. Я теперь scriplet очень плохо, но также верно, что я не знаю, как их избежать. Я думаю, что ваша ссылка будет очень полезна для меня ;-) – bryce

+0

Добро пожаловать :) Рад, что я могу помочь вам –

1

Ваш JSP переведен в сервлет контейнером сервера. Каждый раз, когда вы обновляете свою страницу, вызывается _jspService.

Перевод JSP в сервлет код:

public class HelloWorld2$jsp extends HttpJspBase { 
     //code declare inside <%! %> method goes here 
     public void _jspService(HttpServletRequest request, 
       HttpServletResponse response) 

     { 
      // code declare inside <% %> method goes here 

     } 
    } 

Вместо

<%! int i = 0; %> 

Используйте код ниже:

<% int i = 0; %> 
Смежные вопросы