jsp網站分頁

                                                                                                                 jsp網站分頁技巧解析

第一種:在jsp頁面敲入Java代碼,這樣的分頁毫無意義。因爲沒有靈活性



第二種:stuts1和struts2都提供分頁struts標籤,只需要導入相應的分頁架包進行配置。有靈活性,不具有可複用性。



第三種: hibernate有內置的分頁方法,只需要進行hibernate方法的複寫,就可以實現可複用的分頁功能(適用struts和hibernate整合的項目)

注意:如是myeclipse10.0一下需要添加相應的架包


核心代碼如下:

package com.mr.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class ObjectDao<T> {
private static SessionFactory sessionFactory = null;
private Session session = null;//創建Session對象
Transaction tx = null;//創建事務管理對象
//連接數據庫
static {
try {
// 加載Hibernate配置文件
Configuration cfg = new Configuration().configure();
sessionFactory = cfg.buildSessionFactory();
} catch (Exception e) {
System.err.println("創建會話工廠失敗");
e.printStackTrace();
}

    public List<T> queryList(String hql, 
     int showNumber, int beginNumber) {
session = sessionFactory.openSession();//開啓Session
tx = session.beginTransaction();//開啓事務
List<T> list = null;
try {
Query query=session.createQuery(hql);//利用hql語句進行查詢
query.setMaxResults(showNumber);//設置查詢結果的條數
query.setFirstResult(beginNumber);//設置查詢的起始位置
list = query.list();//將返回的結果集轉換成List集合
} catch (Exception e) {
e.printStackTrace();
}
tx.commit();//事務提交
session.close();//關閉Session
return list;//返回List集合
}

    }

第四種:SSH通用的分頁方法    具有以上分頁所有優點,非常適合大型網站開發


package com.ssh.base;


import java.io.Serializable;
import java.util.List;


import com.ssh.common.PageView;
public interface BaseFinder<T> {
//按ID查詢
public T findById(Class<T> entityClass,Serializable id);
//查詢
public List<T> findAll(Class<T> entityClass,String xql);


//不帶條件的分頁查詢

public PageView<T> findByPage(Class<T> entityClass,String xql,int pageNo,int pageSize);

    //帶條件的分頁查詢
public PageView<T> findByPage(Class<T> entityClass,String xql,Object key,int pageNo,int pageSize);
//帶多個條件的查詢
public PageView<T> findByPage(Class<T> entityClass,String xql,Object[] keys,int pageNo,int pageSize);


public T findByKey(Class<T> entityClass, String xql, Object[] keys);



}


pagemode方法  <!--映射分頁實體->

package com.ssh.common;
public class PageModel {
    private int totalPage;
    private int previousPageNo;
    private int nextPageNo;
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPreviousPageNo() {
return previousPageNo;
}
public void setPreviousPageNo(int previousPageNo) {
this.previousPageNo = previousPageNo;
}
public int getNextPageNo() {
return nextPageNo;
}
public void setNextPageNo(int nextPageNo) {
this.nextPageNo = nextPageNo;
}
}


pageview代碼如下:<!---實現翻頁>

package com.ssh.common;


import java.util.List;






public class PageView<T> {
    private List<T> pageList;
    private int totalNo;
    private int pageNo;
    private int pageSize;
    private int totalPage;
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getPageList() {
return pageList;
}
public void setPageList(List<T> pageList) {
this.pageList = pageList;
}
public int getTotalNo() {
return totalNo;
}
public void setTotalNo(int totalNo) {
this.totalNo = totalNo;
}
public int getTotalPage()
{
int totalPage=0;
if(totalNo%pageSize==0)
{
totalPage=totalNo/pageSize;
}else {
totalPage=totalNo/pageSize+1;
}
return totalPage;
}
    public int getPreviousPageNo()
    {
    if(pageNo<=1)
    {
    return pageNo;
    }else {
return pageNo=-1;
}
    }
    public int getNextPageNo()
    {
    if(pageNo>=getTotalPage())
    {
    return getTotalPage();
    }else {
return pageNo+1;
}
    }
    public int getBackPageNo()
    {
    return getTotalPage();
    }
   
}




發佈了33 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章