ssh框架分頁(包括如何對多對多關係獲得的set集合中的記錄進行分頁)
(1)首先寫乙個pagemodel類,裡面寫了獲得pageno(當前頁數),pagesize(每頁顯示的條數),data(每頁顯示的記錄),recordcount(總的記錄數)的get,set方法下面的方法。
(2)在泛型dao(genericdaoimpl)中的寫如下方法getbypager,可供其他的dao類呼叫,呼叫時t需要換成相應的物件型別。
publicpagemodelgetbypager(intpageno,intpagesize)
throwsdaoexception
returnpm;
}(3)action通過service呼叫dao層的getbypager方法,同時傳入pagesize和pageno(可以是在action裡面寫死定義好的)獲得pagermodel物件,再用該物件呼叫相應的get方法,將pageno(當前頁數),pagesize(每頁顯示的條數),data(每頁顯示的記錄),recordcount(總的記錄數)得到,儲存到session裡。
(4)在相應的jsp頁面加pagerlib標籤
<%@
taglib
uri=""
prefix="q"
%>
在相應的部分寫上從session裡面獲得的值
<
c:foreach
items="$"var="wn"
varstatus="vs"
>
對獲得的每一條記錄的操作
c:foreach
>
<
div
class="actions"
>
<
q:pager
pagesize="$"
pageno="$"
url="myenglearn/frame/templateframe.action"//
分頁操作對應的
action
中的方法
recordcount="$"
/>
div>
當需要分頁的內容是從多對多關係的set集合裡取出的資料時,需要改寫getbypager方法:把set集合轉換成陣列,再定義乙個list集合,利用for迴圈遍歷取出陣列中的每乙個元素,分別存放到list集合裡,再將給list集合用set方法儲存在pagemodel物件中,進而在action裡面用get方法獲取。如下:(紅色註解為過程)
publicpagemodelgetmyresbypager(intpageno,intpagesize,intuid)
else
}//遍歷該陣列,
(pageno-1)*pagesize
為每頁顯示的第一條記錄的id,
pagesize*pageno-1
為每頁顯示的最後一條記錄的id
// 總記錄條數
long count =(long)myrset.size();
if(count !=null&& count.longvalue() > 0)
returnpm;
}昨天發現這個方法有乙個問題,就是set集合裡面存放的資料是無序的,所以分頁是取出的記錄會亂串,在網上查到註解或者配置檔案都可以用order by來讓set集合裡面的記錄按某一列順序排列,但是自己沒有成功。還希望知道怎麼做的朋友,可以告訴我應該怎麼使set集合裡面的記錄順序取出?
後來自己還是用了乙個很笨的方法,就是沒用set集合,而用了list集合,在action中向list集合裡面新增resource物件時,手動寫方法對list集合裡面的物件進行遍歷,如果有相同的就不向list集合裡面加了,這樣集合裡面就不會有重複的資料,而且取出時也不會亂串了。雖然得到了想要的效果,但很麻煩,其實並沒有真的解決問題。
多對多關係
實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你 一對多表設計上是在多方應用少方的主鍵作為外來鍵約束 模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表 語法 少方物件 db.relationship 少方模型名 backref db.backref xxlist...
Flask sqlalchemy多對多關係
from flask import flask from flask sqlalchemy import sqlalchemy article tag db.table article tag db.column article id db.integer,db.foreignkey article...
多對多關係對映
需要用到 manytomany註解,然後在需要維護關係的一方,加上 jointable註解。必須指定乙個維護關係,否則會導致關係表id重複出現錯誤。jointable 有以下屬性,joincolumns 設定該實體類對映在關係表中的外來鍵列名和參照列,inversecolumns 設定和該實體類關聯...