Ⅰ java ee如何用javabean實現頁面分頁
你可以使用servlet直接實現分頁,還用不到javabean呢,當然如果你想使用MVC格式的javabean也是可以的,分頁的關鍵不在於javabean而在於Model對資料庫信息的處理,然後將必要的參數反饋給jsP頁面,jsp通過接受控制器發過來的數據然後處理顯示,就出現你說的分頁的效果了
分頁的SQL代碼資料庫部分顯示:select top pageSize *from table where 屬性 not in (select top pageSize*(PageCount-1) 屬性 from table)
Ⅱ JSP+Servlet+JavaBean寫「博奧教育網址之家「前台和後台,後台卡在分頁了,還要求前台顯示排序
不知道你的資料庫用的什麼 每種資料庫的分頁不一樣的 mysql 用的是limit sqlsever是 top oracle是rownumber
給你一個通用的分頁代碼 但是數據量小的時候可以 大的時候就很慢了
pagesize //每頁顯示的數據大小
rowcount//行記錄
iPage//頁數
pagecount//總頁數
recordcount //總的記錄數
sqlRst.last();
recordcount = sqlRst.getRow();
sqlRst.beforefirst();
//這段代碼是取得總的記錄數 然後進行分頁計算
if ((request.getParameter("pagesize") != null) && (request.getParameter("pagesize") != "")){
pagesize = Integer.parseInt(request.getParameter("pagesize"));
}
else{
pagesize = 500;
}
rowcount = pagesize;
if ((request.getParameter("iPage") == "") || (request.getParameter("iPage") == null)){
iPage = 1;
}
else{
iPage = Integer.parseInt(request.getParameter("iPage"));
}
if(recordcount % pagesize == 0){
pagecount = recordcount / pagesize;
}
else{
pagecount = (recordcount / pagesize + 1);
}
if (iPage < 1){
iPage = 1;
}
if (iPage > pagecount){
iPage = pagecount;
}
//頁碼參數
if (((iPage - 1) * pagesize > 0) && ((iPage - 1) * pagesize < recordcount)){
sqlRst.absolute((iPage - 1) * pagesize);
}
else if((iPage - 1) * pagesize <= 0){
sqlRst.beforeFirst();
}
else if((iPage - 1) * pagesize >= recordcount){
sqlRst.absolute(recordcount);
}
//這里是最笨的去數據的分頁方法 因為你沒有說你的資料庫是什麼
然後下面用while循環去數據顯示就可以了
Ⅲ Java中JavaBean的作用范圍:request和page的區別是什麼啊
JavaBean在WEB編程中一直被當作模型層對象來使用,不存在作用范圍的說法,它是MVC模式的M,使用JavaBean存放數據可以有效的避免頻繁的將數據存入或取出某個作用范圍。
例如:當我們需要將用戶的注冊信息通過請求轉發傳遞到新的頁面,如果不使用JavaBean我們就得頻繁的將用戶屬性保存到request對象中,在下一個頁面又需要一個一個從request對象中取出,這樣做相當麻煩,使用JavaBean將用戶屬性全部封裝在一個User對象中我們就可以只存取request對象一次就可以了。
JavaBean早期出現在Java的圖形界面編程中(Swing),這也是Java最早開始使用MVC模式,在圖形界面Swing編程中的JavaBean有四大屬性(根據需要,不必同時存在),而現在WEB編程中我們只需要考慮其中的Simple屬性和Index屬性就可以了。
page內置對象是Object類的一個實例,它是處理當前請求的JSP頁面實現類的實例。page對象在頁面的正文中可以被比作是this關鍵字,它的作用范圍僅限於當前page頁面。實際開發過程中使用較少。
request內置對象是HttpServletRequest對象的一個實例,代表了一個客戶端請求,當用戶向伺服器發送請求(不論是點擊鏈接還是提交表單),哪怕該請求在伺服器上被轉發N次,都是一個請求,直到伺服器最終發送相應為止,這都是該request對象的生命周期。
例如:在JSP + Servlet + JavaBean的開發中,經常使用Servlet接收請求,將數據保存到JavaBean中,然後將JavaBean保存到request對象,再通過請求轉發到負責顯示的JSP頁面,最終通過標簽將JavaBean中保存的數據顯示在JSP頁面內。
Ⅳ (jsp+javabean+oracle)這個分頁代碼怎麼不能正確顯示
邏輯很亂呀....如果數據量小的話,還是用js吧,今後擴展才容易,,如果一定要用jsp最好也是將分頁代碼提出,封裝成java方法,要用的時候直接調用就行。
像這樣都放在頁面上是越擴展越難的.......
Ⅳ jsp分頁代碼有問題
還是用javaBean比較好,顯示與處理分離,明了。
給你一個,通用的,不過要把其對象放到Session中,切記啦
public class Pagination {
private int currentPage; //當前頁
private int totalPages; //總頁數
private int pageRows; //每頁記錄數
private int totalRows; //總記錄數
private int pageStartRow; //每頁開始記錄
private int pageEndRow; //每頁結束記錄
private boolean hasPreviousPage; //是否有上一頁
private boolean hasNextPage; //是否有下一頁
private List<Object> totalList; //要分頁的數據
//初始化頁面信息
public void initPage(List<Object> totalList,int pageRows){
this.totalList = totalList;
this.pageRows = pageRows;
this.totalRows = totalList.size();
this.currentPage = 1;
// 計算總頁數
if ((totalRows % pageRows) == 0) {
totalPages = totalRows / pageRows;
if (this.totalRows == 0)
this.totalPages = 1;
} else {
totalPages = totalRows / pageRows + 1;
}
// 默認無上一頁
this.hasPreviousPage = false;
// 判斷是否有下一頁
if (currentPage == totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
// 默認第一頁開始的記錄數為1
this.pageStartRow = 1;
// 確定第一頁結束的記錄數
if (totalRows < pageRows) {
this.pageEndRow = totalRows;
} else {
this.pageEndRow = pageRows;
}
}
//獲取當前頁信息
public List<Object> getCurrentPageList(){
if(currentPage*pageRows<totalRows){
pageEndRow=currentPage*pageRows;
pageStartRow=pageEndRow-pageRows;
}else{
pageEndRow=totalRows;
pageStartRow=pageRows*(totalPages-1);
}
List<Object> pageList=new ArrayList<Object>(pageEndRow-pageStartRow+1);
if(totalRows!=0){
for(int i=pageStartRow;i<pageEndRow;i++){
pageList.add(totalList.get(i));
}
}
return pageList;
}
//獲取上一頁信息
public List<Object> getPreviousPageList(){
currentPage = currentPage - 1;
if (currentPage < 1){
currentPage = 1;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//獲取下一頁信息
public List<Object> getNextPageList(){
currentPage = currentPage + 1;
if (currentPage > totalPages)
currentPage = totalPages;
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//獲取指定頁信息
public List<Object> getAppointPageList(int currentPage){
this.currentPage = currentPage;
if (currentPage > this.totalPages)
this.currentPage = this.totalPages;
if (currentPage < 1)
this.currentPage = 1;
if (this.currentPage > 1) {
this.hasPreviousPage = true;
} else {
this.hasPreviousPage = false;
}
if (this.currentPage < this.totalPages) {
this.hasNextPage = true;
} else {
this.hasNextPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
// 返回當前頁
public int getCurrentPage() {
return currentPage;
}
// 返回每頁記錄數
public int getPageRows() {
return pageRows;
}
// 返回當前頁開始記錄
public int getPageStartRow() {
return pageStartRow;
}
// 返回當前頁結束記錄
public int getPageEndRow() {
return pageEndRow;
}
// 返回總頁數
public int getTotalPages() {
return totalPages;
}
// 返回總記錄數
public int getTotalRows() {
return totalRows;
}
// 返回是否有上一頁
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
// 返回是否有下一頁
public boolean isHasNextPage() {
return hasNextPage;
}
}