springmvc 4+hibenate 4 페이지 조회 기능 구현
7625 단어 springmvc4페이지 별 조회
페이지 별 실현 의 기본 과정:
1.페이지 도구 류
생각:
1.페이지 클래스 를 작성 하고 속성 을 정의 합 니 다.조회 결과 집합,조회 기록 총수,각 페이지 에 기록 수,현재 몇 페이지 등 속성 을 포함해 야 합 니 다.
2.페이지 클래스 를 작성 하고 정의 하 는 방법 은 총 페이지 수,현재 페이지 시작 기록,첫 페이지,다음 페이지,이전 페이지,마지막 페이지 등 방법 을 포함해 야 합 니 다.
코드 는 다음 과 같 습 니 다:
package cn.myic.model;
import java.util.List;
public class Page<E> {
//
private List<E> list;
//
private int totalRecords;
//
private int pageSize;
//
private int pageNo;
/**
* @return
* */
public int getTotalPages(){
return (totalRecords+pageSize-1)/pageSize;
}
/**
*
* @param pageSize
* @param currentPage
* @return
*/
public int countOffset(int currentPage,int pageSize){
int offset = pageSize*(currentPage-1);
return offset;
}
/**
* @return
* */
public int getTopPageNo(){
return 1;
}
/**
* @return
* */
public int getPreviousPageNo(){
if(pageNo<=1){
return 1;
}
return pageNo-1;
}
/**
* @return
* */
public int getNextPageNo(){
if(pageNo>=getBottomPageNo()){
return getBottomPageNo();
}
return pageNo+1;
}
/**
* @return
* */
public int getBottomPageNo(){
return getTotalPages();
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
2.Dao 층 방법사고방식:페이지 별로 조회 하 는 방법 을 정의 하고 파 라미 터 를 설정 합 니 다.페이지 번호 와 페이지 마다 몇 개의 기록 을 표시 합 니까?
코드 는 다음 과 같 습 니 다:
/**
*
* @param hql
* @param offset
* @param length
* @return
*/
@SuppressWarnings("unchecked")
@Override
public List<Course> queryForPage(int offset, int length) {
// TODO Auto-generated method stub
List<Course> entitylist=null;
try{
Query query = getSession().createQuery("from Course");
query.setFirstResult(offset);
query.setMaxResults(length);
entitylist = query.list();
}catch(RuntimeException re){
throw re;
}
return entitylist;
}
3.서비스 층 방법생각:
1.페이지 별로 조회 하 는 방법 을 정의 하고 파 라 메 터 를 설정 합 니 다.페이지 번호 와 페이지 마다 몇 개의 기록 을 표시 하고 조회 결과 의 페이지 별 대상(Page)을 되 돌려 줍 니 다.
2.Dao 층 을 통 해 실 체 를 조회 하 는 총 기록 수 를 가 져 옵 니 다.
3.현재 페이지 시작 기록 수 가 져 오기
4.Dao 층 을 통 해 페이지 별 조회 결과 집합 가 져 오기
5.페이지 대상 설정
코드 는 다음 과 같 습 니 다:
/**
*
* @param currentPage :
* @param pageSize
* @return ( list) Bean
* */
@SuppressWarnings("unchecked")
@Override
public Page queryForPage(int currentPage,int pageSize) {
// TODO Auto-generated method stub
Page page = new Page();
//
int allRow = courseDao.getAllRowCount();
//
int offset = page.countOffset(currentPage,pageSize);
//
List<Course> list = courseDao.queryForPage(offset, pageSize);
page.setPageNo(currentPage);
page.setPageSize(pageSize);
page.setTotalRecords(allRow);
page.setList(list);
return page;
}
4.Controller 층 방법Controller 층 의 디자인 은 페이지 넘 기 조 회 를 조작 할 때 현재 페이지 번호 파라미터 만 전달 하면 됩 니 다.
코드 는 다음 과 같 습 니 다:
@RequestMapping(value = "/showAll.do")
public String findAllCourse(HttpServletRequest request,
HttpServletResponse response) {
try {
String pageNo = request.getParameter("pageNo");
if (pageNo == null) {
pageNo = "1";
}
Page page = courseService.queryForPage(Integer.valueOf(pageNo), 10);
request.setAttribute("page", page);
List<Course> course = page.getList();
request.setAttribute("courses", course);
} catch (Exception e) {
e.printStackTrace();
}
return "course/course_list";
}
5.View 층 jsp 전시jsp 페이지 페이지 의 몇 개의 단 추 는 현재 페이지 번호 의 판단 에 따라 표 시 됩 니 다.
코드 는 다음 과 같 습 니 다:
<tr>
<td colspan="6" align="center" bgcolor="#5BA8DE"> ${page.totalRecords} ${page.totalPages} ${page.pageNo} <br>
<a href="${path}/course/showAll.do?pageNo=${page.topPageNo }"><input type="button" name="fristPage" value=" " /></a>
<c:choose>
<c:when test="${page.pageNo!=1}">
<a href="${path}/course/showAll.do?pageNo=${page.previousPageNo }"><input type="button" name="previousPage" value=" " /></a>
</c:when>
<c:otherwise>
<input type="button" disabled="disabled" name="previousPage" value=" " />
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${page.pageNo != page.totalPages}">
<a href="${path}/course/showAll.do?pageNo=${page.nextPageNo }"><input type="button" name="nextPage" value=" " /></a>
</c:when>
<c:otherwise>
<input type="button" disabled="disabled" name="nextPage" value=" " />
</c:otherwise>
</c:choose>
<a href="${path}/course/showAll.do?pageNo=${page.bottomPageNo }"><input type="button" name="lastPage" value=" " /></a>
</td>
</tr>
페이지 효과:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring mvc 4 의 주석 에 대한 상세 한 설명 튜 토리 얼Controller 컨트롤 러 는 서비스 인 터 페 이 스 를 통 해 정 의 된 접근 프로그램 을 제공 하 는 행위 로 사용자 의 입력 을 설명 하고 모델 로 변환 한 다음 사용자 에 게 바 치 려 고 합 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.