Pagination harus menjadi pekerjaan yang sering kita lakukan saat mengembangkan aplikasi web. Sangat penting untuk dapat menerapkan pagination database dan melihat lapisan dengan cara yang relatif sederhana.
Di lapisan database, gunakan hibernate untuk memberi paginasi database, dan merangkum data yang ditanya dari database menjadi JavaBeans; Di lapisan tampilan, paging dapat dengan mudah diimplementasikan.
Buat PageBean
paket com.fishing.common.bean; impor java.util.list; @SuppressWarnings ("Uncecked") Public Class PageBean {Daftar Private List; // Daftar catatan yang akan dikembalikan Private Int Allrow; // Total catatan Totalpage int privat; // Total halaman private int currentpage; // halaman saat ini private int pageSize; // Jumlah catatan per halaman private boolean isFirstpage; // apakah itu halaman pertama boolean islastpage pribadi; // apakah itu halaman terakhir boolean pribadi yang memiliki preveviouspage; // Apakah ada halaman sebelumnya HasNextPage boolean private; // Apakah ada halaman berikutnya daftar publik getList () {daftar kembali; } public void setList (daftar daftar) {this.list = list; } public int getAllRow () {return allrow; } public void setallrow (int allrow) {this.allrow = allrow; } public int getTotalPage () {return TotalPage; } public void setTotalPage (int totalPage) {this.totalPage = totalPage; } public int getCurrentPage () {return currentPage; } public void setCurrentPage (int currentPage) {this.currentpage = currentPage; } public int getPageSize () {return pageSize; } public void setPagesize (int pageSize) {this.pagesize = pageSize; } / *** / / ***Inisialisasi informasi paging* / public void init () {this.isfirstpage = isFirstPage (); this.islastpage = isLastPage (); this.haspreviouspage = isHaspreviousPage (); this.hasnextPage = isHasnextPage (); }/ ** */// ** * Berikut ini untuk menilai informasi halaman, cukup metode getter (adalah metode) * * @return */ public boolean isFirstpage () {return (currentpage == 1); // jika halaman saat ini adalah halaman pertama} public boolean isLastPage () {return currentpage == TotalPage; // Jika halaman saat ini adalah halaman terakhir} public boolean ishaspreviouspage () {return currentpage! = 1; // Selama halaman saat ini bukan halaman pertama} public boolean isHasnextPage () {return currentPage! = TotalPage; //As long as the current page is not the last page} /** */ /** * Calculate the total number of pages, a static method, and is directly called by the outside through the class name* * @param pageSize * Number of records per page* @param allRow * Total records* @return Total pages*/ public static int countTotalPage(final int pageSize, final int allRow) { int totalPage = allRow % pageSize == 0? Allrow / PageSize: Allrow / Pagesize + 1; pengembalian totalpage; } / *** / / *** Hitung catatan mulai dari halaman saat ini** @param halamanze* Jumlah catatan per halaman* @param currentpage* Halaman saat ini* @Return Halaman saat ini Mulai Nomor Rekaman* / Public Static Int Countoffset (laman int final, final int currentpage) {final int offset = fageSize* (currentpage - 1); Return Offset; } /*** / / /*** Hitung halaman saat ini. Jika 0 atau tidak ada "? Halaman =" di URL yang diminta, maka 1 digunakan sebagai gantinya * * @param Page * parameter yang diteruskan (mungkin kosong, yaitu, 0, maka 1 akan dikembalikan) * @return halaman saat ini */ public static int countCurrentPage (int halaman) {final int curpage = (halaman == 0? 1: halaman); Return Curpage; }} Tambahkan metode ke antarmuka abstrak DAO berdasarkan:
QueryForPage Daftar Publik (string akhir HQL, Final Int Offset, Final Int Length); Implement method in Dao's implementation class JianSheDWDaoImpl public List queryForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = Sesi. Cacar (HQL); daftar pengembalian; } Tambahkan metode ke antarmuka lapisan abstraksi layanan jianshedwservice:
Public PageBean QueryForpage (int pageSize, int currentpage);
Implementasikan metode di kelas implementasi layanan:
Public PageBean QueryForPage (int pageSize, int halaman) {final string hql = "from jianshedwean"; // Pernyataan kueri int allrow = this.baseoo.getallrowCount (hql); // Total catatan int totalPage = PageBean.CountTotalPage (PageSize, Allrow); // Total halaman final int offset = pageBean.countoffset (halamanze, halaman); // halaman saat ini mulai merekam panjang int int = halaman; // Jumlah catatan per halaman final int currentpage = pageBean.countcurrentpage (halaman); Daftar <JianshedWbean> Daftar = this.basedao.queryforpage (hql, offset, length); // Catatan "satu halaman" // Simpan informasi paging ke dalam PageBean Bean PageBean = new PageBean (); PageBean.SetPagesize (halaman); PageBean.SetCurrentPage (SurrentPage); PageBean.setallrow (Allrow); PageBean.SettotalPage (TotalPage); PageBean.setList (Daftar); PageBean.init (); Kembalikan PageBean; } Buat model pagination dalam aksi lapisan tampilan
paket com.fishing.action.lcq; impor com.fishing.common.bean.jianshedwean; impor com.fishing.common.bean.pagebean; impor com.fishing.service.lcq.jianshedwservice; impor com.opensymphony.xwork2.actionsupport; @Suppresswarnings ("serial") kelas publik getInfojsdwlistaction memperluas ActionSupport {private int page; // Halaman apa PageBean PageBean; // kacang yang berisi informasi distribusi jianshedwean jianshedwean; // halaman private pageBean; jianshedwservice jianshedwservice; public int getPage () {return page; } public void setPage (int halaman) {this.page = halaman; } pube PageBean getPagebean () {return pageBean; } public void setPagebean (PageBean PageBean) {this.pageBean = PageBean; } public jianshedwean getjianshedwean () {return jianshedwean; } public void setjianshedwean (jianshedwean jianshedwean) {this.jianshedwbean = jianshedwean; } public jianshedwservice getjianshedwservice () {return jianshedwservice; } public void setjianshedwservice (jianshedwservice jianshedwservice) {this.jianshedwservice = jianshedwservice; } @Override Public String Execute () melempar Exception {// PageBean dari pagination, halaman parameter menunjukkan jumlah catatan yang ditampilkan per halaman, halaman ini adalah halaman saat ini.pagebean = jianshedwservice.queryforpage (10, halaman); Sukses kembali; }} Tulis halaman di JSP
<tr> <td> </td> <td> <s: if test = "%{pageBean.currentpage == 1}"> Beranda Halaman Sebelumnya </s: if> <s: else> <a href = "jiangguan/getjsdwinfos.action? page = 1"> home </a> <a> href = "jiangguan/getjsdwinfos.action? page = <s: nilai properti ="%{pageBean.currentpage-1} "/>"/> halaman sebelumnya </a> </s: else> </td> <td> <s: if test = "%{pageBean.currentpage! href = "jiangguan/getjsdwinfos.action? page = <s: nilai properti ="%{pageBean.currentpage+1} "/>"> halaman berikutnya </a> <a href = "jiangguan/getjsdwinfos.action? page = <s: <ste value =" page/getjsdwinfos.action? page = <s: property value = "pageBean." pageBeArt " <S: else> halaman pagelast berikutnya </s: else> </td> <td> <div align = "center"> halaman <s: nilai properti = "pageBean.currentpage"/> <s: nilai properti = "pageBean.totalPage"/<"Nilai Properti =" PageBean.allrow "/ToBeBean </ToTalPage"/<"Nilai Properti =" PageBean.allrow "/ToBeBean <///</<" Diveing = "PageBean.allrow" </td> </tr> Di atas hanyalah implementasi kode, dan tidak menjelaskan file konfigurasi, dan pembaca mengonfigurasinya sesuai dengan situasinya.
Saya harap artikel ini akan membantu Anda. Ini semua bagi Anda untuk memperkenalkan konten pagination dari implementasi basis data dan antarmuka SSH2. Saya harap semua orang akan terus mengikuti situs web kami! Jika Anda ingin belajar Java, Anda dapat terus mengikuti situs web ini.