أصبح SpringMVC+Hibernate تكاملًا إطارًا يستخدمه كثير من الناس الآن. في الآونة الأخيرة ، كنت أتعلم واستكشاف. نظرًا لأن العديد من المشاريع في مشاريع التطوير تستخدم وظيفة الترحيل في القائمة ، فإننا نشير هنا إلى بعض المعلومات على الإنترنت ، ونستخدم springmvc4+hibnerate4 لتلخيصها أثناء التعلم وتلخيصها ، وللحصول على رمز وظيفة الترحيل. على الرغم من أنها ليست بالضرورة عالمية ، إلا أنها ذات قيمة مرجعية للمبتدئين.
العملية الأساسية لتنفيذ ترقيم الصفحات:
1. فئة أداة ترقيم الصفحات
الأفكار:
1. اكتب فئة صفحة وتحديد السمات ، والتي يجب أن تتضمن: مجموعة نتائج الاستعلام ، وسجلات الاستعلام المجموع ، وسجلات العرض لكل صفحة ، والصفحة الحالية والسمات الأخرى.
2. اكتب فئة الصفحة وحدد الطريقة ، والتي يجب أن تتضمن: إجمالي عدد الصفحات ، وبدء تسجيل الصفحة الحالية ، والصفحة الرئيسية ، والصفحة التالية ، والصفحة السابقة ، والصفحة الأخيرة وطرق أخرى
الرمز كما يلي:
Package cn.myic.model ؛ import java.util.list ؛ صفحة الفئة العامة <e> {// نتائج تعيين قائمة خاصة <e> ؛ // إجمالي عدد سجلات الاستعلام الخاصة int totalRecords ؛ // كم عدد السجلات لكل صفحة pagesize pagesize ؛ // أي صفحة خاصة int pageno ؛ /*** regurn العدد الإجمالي للصفحات**/public int getTotalPages () {return (TotalRecords+pagesize-1)/pagesize ؛ } / *** احسب سجل بدء الصفحة الحالي* Param Pagesize عدد السجلات لكل صفحة* param currentpage التي هي حاليًا* @REGRURN PAGE START RECORD* / public int countoffset (int currentpage ، int pagesize) {int offset = pagesize* (CurrentPage-1) ؛ إرجاع إزاحة ؛ } / *** regurn الصفحة الرئيسية** / public int getTopPageno () {return 1 ؛ } / *** return الصفحة السابقة** / public int getPreviousPageno () {if (pageno <= 1) {return 1 ؛ } إرجاع Pageno-1 ؛ } / *** regurn الصفحة التالية** / public int getNextPageno () {if (pageno> = getBottompageno ()) {return getBottompageno () ؛ } إرجاع Pageno+1 ؛ } / *** regurn الصفحة الأخيرة** / public int getBottompageno () {return getTotalPages () ؛ } القائمة العامة <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. طريقة الطبقة
الفكرة: تحديد طريقة استعلام ترقيم الصفحات ، والمعلمات تعيين: عندما يكون رقم الصفحة وعدد السجلات المعروضة في كل صفحة
الرمز كما يلي:
/ *** Query Pagination* Param HQL Query ظروف* Param Offset START Recording* param طول QUERY عدة سجلات في وقت* @RESTURN RETROND RETROND RECORD COLLECTION*/ @suppressWarnings ("uncheced") @Override Public List <Sours> queryforpage (int undert) حاول {Query Query = getSession (). createquery ("من الدورة") ؛ Query.SetFirStresult (إزاحة) ؛ Query.SetMaxResults (طول) ؛ entityList = Query.List () ؛ } catch (runTimeException re) {throw re ؛ } إرجاع entitylist ؛ } 3. طريقة طبقة الخدمة
الأفكار:
1. تحديد طريقة استعلام ترقيم الصفحات ومعلمات المعلمات: عندما يكون رقم الصفحة وعدد السجلات المعروضة في كل صفحة ، كائن ترقيم الصفحات (الصفحة) الذي يعيد نتيجة الاستعلام
2. من خلال طبقة DAO ، احصل على العدد الإجمالي لسجلات كيان الاستعلام
3. احصل على عدد السجلات التي تبدأ في الصفحة الحالية
4. من خلال طبقة DAO ، احصل على مجموعة نتائج استعلام الصفحات
5. تعيين في كائن الصفحة
الرمز كما يلي:
/ *** Query Pagination* param currentpage رقم الصفحة الحالية: عدد الصفحات المعروضة الآن* page pagesmize عدد السجلات المعروضة لكل صفحة* return التي تحيط بمعلومات ترقيم الصفحات (بما في ذلك قائمة مجموعة السجلات) = صفحة جديدة () ؛ // إجمالي عدد السجلات int allrow = corsedao.getAllRowCount () ؛ // تبدأ الصفحة الحالية في تسجيل إزاحة int = page.countoffset (pagepage ، pagesize) ؛ // قائمة استعلام استعلام الصفحات <STERS> قائمة = coursedao.queryforpage (الإزاحة ، pagesize) ؛ page.setpageno (pagepage) ؛ page.setpagesize (pagesize) ؛ page.SettOtalRecords (allrow) ؛ page.setList (قائمة) ؛ صفحة العودة ؛ }
4. طريقة طبقة وحدة التحكم
تصميم طبقة وحدة التحكم ، عند تشغيل صفحة التشغيل ، تحتاج فقط إلى تمرير معلمة رقم الصفحة الحالية.
الرمز كما يلي:
requestmapping (value = "/showall.do") السلسلة العامة findallcourse (httpservletrequest request ، httpservletresponse) {try {String pageno = request.getParameter ("pageno") ؛ if (pageno == null) {pageno = "1" ؛ } الصفحة = complysevice.queryforpage (integer.valueof (pageno) ، 10) ؛ request.setattribute ("page" ، page) ؛ قائمة <SETR> course = page.getList () ؛ request.setattribute ("الدورات" ، الدورة) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } إرجاع "Course/Course_List" ؛ } 5. عرض عرض JSP للطبقة
يتم عرض عدة أزرار لصفحات JSP للترحيل وفقًا لحكم رقم الصفحة الحالي.
الرمز كما يلي:
<td colspan = "6" align = "center" bgColor = "#5ba8de"> total $ {page.totalRecords} recordstotal $ {page.totalpages} الصفحة الحالية <br> <a href = "$ {path} /coursel.do؟ type = "button" name = "fristpage" value = "home"/> </a> <c: اختر> <c: عندما test = "$ {page.pageno! = 1}"> <a href = "$} ] href = "$ {path} /course/showall.do؟pageno = $ {page.nextpageno}"> <input type = "button" name = "nextpage" value = "nextpage"/> </a> </ c: when> <c: ally> <butto type = "button" updatible ". </c: اختر> <a href = "$ {path} /course/showall.do؟pageno = $ {page.bottompageno}"> <input type = "button" name = "lastpage" value = "last page"/> </a> </td> </tr> </tr>تأثير الصفحة:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.