adminGoodsMain.jsp
// JSTL의 반복 태크로 Page변수를 1부터 10까지 증가시키며 반복한다.
<c:forEach var="page" begin="1" end="10" step="1">
<c:if test="${section > 1 && page == 1}">
<a href="${contextPath}/admin/goods/adminGoodsMain.do?section=${section-1}&pageNum=${(section-1)*10+1}"> </a>
</c:if>
<a href="${contextPath}/admin/goods/adminGoodsMain.do?section=${section}&pageNum=${(section-1)*10+page}">${(section-1)*10+page}</a>
<c:if test="${page == 10}">
<a href="${contextPath}/admin/goods/adminGoodsMain.do?section=${section+1}&pageNum=${section*10+1}"> next</a>
</c:if>
</c:forEach>
- controller에서 section , page 1로 값이 온다.
- foreach로 page 반복문 시작
- 두번째 a 태그는 조건이 없음으로 이 조건이 1~10까지 채워줌
- page가 10까지 올라갔음으로 마지막 조건문에 해당하는 next가 보이고
next를 누르면 section에 1을 추가함, 2번째 a태그에서 section이 2가되었음으로 11부터 출력- section이 2가되었음으로 첫번째 a태그가 실행되고 prev버튼이 생긴다.
- prev버튼을 누르면 section - 1 이 됨으로 다시 1부터 시작
(& nbsp) : 공백문자
정리)
forEach문 안에있는 모든 코드들이 반복되고 있다. if걸린건 조건 만족할때만 실행되고
결국 반복문으로 인해서 1,2,3,4,5,6 ~ 10 next 뷰가 만들어진다.
그리고 누르면 a href 에 의해 url의 쿼리 매개변수로 간다.
page는 foreach에서 생성 -> pageNum과 section 쿼리매개변수 controller로 보낸다.
하지만 초기 secion,pageNum값은 controller에서 쏴준다.
Map<String,Object> condMap=new HashMap<String,Object>();
if(section== null) {
section = "1";
}
condMap.put("section",section);
if(pageNum== null) {
pageNum = "1";
}
condMap.put("pageNum",pageNum);
condMap.put("beginDate",beginDate);
condMap.put("endDate", endDate);
위의 코드를 보면 view를 뿌려주기전에 section 이 null이면 1로 지정하라는 말이 있다. 그래서
view 에서 표현어로 받을 수 있는 것