내가 보려고 만드는/jsp

[jsp] 웹 페이지를 새로고침 할 때마다 변수 값 초기화시키기

gaga_ 2021. 1. 28. 00:19

테이블을 이용하여 각 행마다 번호를 매기는데, 문제는 다음과 같이 코드를 작성했더니

페이지를 로딩할 때마다 1부터 테이블이 시작되어야 하는데, 새로고침할 때마다 값이 증가했다.

 

<%! int no = 1; %>

<c:forEach items="${list}" var="b">
  <tr>
    <td>no++</td>
    <td>${b.getTitle()}</td>
    <td>${b.getAuthor()}</td>
    <td>${b.getComment()}</td>
    <td>${b.getRegdate()}</td>
    <td><a class="btn btn-sm btn-warning" href="editform.jsp?id=${b.getId()}">Edit</a></td>
    <td> <a class="btn btn-sm btn-danger" href="deletebook.jsp?id=${b.getId()}">Delete</a></td>
  </tr>
</c:forEach>

 

 

이런 경우에는 변수를 선언하는 것이 아니라 <c:forEach> 태그의 varStatus 속성을 사용해야 의도한대로 번호를 증가시킬 수 있다.

 

<c:forEach items="${list}" var="b" varStatus="status">
  <tr>
    <td>${status.count}</td>
    <td>${b.getTitle()}</td>
    <td>${b.getAuthor()}</td>
    <td>${b.getComment()}</td>
    <td>${b.getRegdate()}</td>
    <td><a class="btn btn-sm btn-warning" href="editform.jsp?id=${b.getId()}">Edit</a></td>
    <td> <a class="btn btn-sm btn-danger" href="deletebook.jsp?id=${b.getId()}">Delete</a></td>
  </tr>
</c:forEach>

 

varStatus를 이용하여 변수를 선언한 다음, 변수이름.count 를 이용하여 번호를 매겼다.

 

 

이때, count 값만 가질 수 있는 것이 아니라  다음과 같은 값들을 가질 수 있다.

 

  • ${status.current}: 현재 for 문의 해당하는 번호
  • ${status.index}: 0부터의 순서
  • ${status.count}: 1부터의 순서
  • ${status.first}: 첫 번째인지 여부 
  • ${status.last}: 마지막인지 여부
  • ${status.begin}: for문의 시작 번호
  • ${status.end}: for문의 끝 번호
  • ${status.step}: for문의 증가값

 

 

결과 창

 

참고한 링크: jetalog.net/20