分页的当前页号如何去传递
比如说按下一页的时候如何每次都能正确传递页面加1
最好是说详细点 下面是我的分页类package ssh.web;import java.util.List;public class PageForm { // 总记录数
private int totalRecords; // 结果集
private List list; // 当前页
private int pageNo=1; // 每页显示多少条
private int pageSize=5; public int getTotalRecords() {
return totalRecords;
} /**
* 取得总页数
*
* @return
*/
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
} public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
} public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} 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;
} /**
* 取得第一页
*
* @return
*/
public int getTopPageNo() {
return 1;
} /**
* 取得上一页
*
* @return
*/
public int getPreviousPageNo() {
if (pageNo <= 1) {
return 1;
}
return pageNo - 1;
} /**
* 取得下一页
*
* @return
*/
public int getNextPageNo() {
if (pageNo >= getTotalPages()) {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
return pageNo + 1;
} /**
* 取得最后一页
*
* @return
*/
public int getBottomPageNo() {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
}
比如说按下一页的时候如何每次都能正确传递页面加1
最好是说详细点 下面是我的分页类package ssh.web;import java.util.List;public class PageForm { // 总记录数
private int totalRecords; // 结果集
private List list; // 当前页
private int pageNo=1; // 每页显示多少条
private int pageSize=5; public int getTotalRecords() {
return totalRecords;
} /**
* 取得总页数
*
* @return
*/
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
} public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
} public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} 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;
} /**
* 取得第一页
*
* @return
*/
public int getTopPageNo() {
return 1;
} /**
* 取得上一页
*
* @return
*/
public int getPreviousPageNo() {
if (pageNo <= 1) {
return 1;
}
return pageNo - 1;
} /**
* 取得下一页
*
* @return
*/
public int getNextPageNo() {
if (pageNo >= getTotalPages()) {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
return pageNo + 1;
} /**
* 取得最后一页
*
* @return
*/
public int getBottomPageNo() {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
}
我在dao已经拿到了。问题是怎么到action里面来.特别是总页数。我要传查询结果。页数要传过来难道service层还要写个方法来接受总页数传到action?
给我具体实现吧
this.pageNo = pageNo;
}调用时:PageForm pf = new PageForm(8); //当前就是第8业
看清楚 我在dao里面拿的到。但是问题也来了。。我dao还需要做数据的查询
建议分页不要和其他的熟性掺杂在一起…… 提炼提炼
你做个静态工厂不就OK了?
//模型层
package com.guo.daoimpl;import java.util.ArrayList;import com.guo.dao.Pagination;
import com.guo.method.*;public class MSSQLPagination implements Pagination { private String tableName;
private String tableId;
private int pageSize;
private int pageNumber;
private int maxPages;
private int maxElements; public MSSQLPagination() {
} public void setTableName(String tableName) {
this.tableName = tableName;
} public void setTableId(String tableId) {
this.tableId = tableId;
} public MSSQLPagination(String tableName, String tableId, int pageSize,
int pageNumber) {
this.tableName = tableName;
this.tableId = tableId;
this.pageSize = pageSize;
this.pageNumber = pageNumber;
init();
} public void init() {
setMaxElements(maxElements);
setMaxPages(maxPages);
} @Override
public ArrayList<Object> getList() { // 返回当前页的数据的集合
String args = (pageNumber - 1) * pageSize + "";
String sql = "select top " + pageSize + " * from " + tableName
+ " where " + tableId + " not in(select top " + args + " "
+ tableId + " from " + tableName + " order by " + tableId
+ " desc)order by " + tableId + " desc";
if (tableName.equals("users")) {
UsersMethod um = new UsersMethod();
return um.query(sql, null);
}
return null;
} public void setMaxElements(int maxElements) {
String sql = "select count(*) from " + tableName;
this.maxElements = CommonMethod.getMaxElements(sql);
} @Override
public int getMaxElements() { // 返回要分页的总记录数
return maxElements;
} public void setMaxPages(int maxPages) {
if (maxElements != 0 && (maxElements % pageSize == 0)) {
this.maxPages = maxElements / pageSize;
} else {
this.maxPages = maxElements / pageSize + 1;
}
} @Override
public int getMaxPages() { // 返回总页数
return maxPages;
} @Override
public int getNext() {
if (pageNumber + 1 >= getMaxPages()) {
pageNumber = getMaxPages();
return pageNumber;
} else {
pageNumber = pageNumber + 1;
return pageNumber;
}
} @Override
public int getPageNumber() {
return pageNumber;
} @Override
public int getPageSize() {
// TODO Auto-generated method stub
return 0;
} @Override
public int getPrevious() {
if (pageNumber - 1 <= 1) {
pageNumber = 1;
return pageNumber;
} else {
pageNumber = pageNumber - 1;
return pageNumber;
}
} @Override
public boolean hasNext() {
// TODO Auto-generated method stub
return false;
} @Override
public boolean hasPrevious() {
// TODO Auto-generated method stub
return false;
} @Override
public boolean isFirst() {
// TODO Auto-generated method stub
return false;
} @Override
public boolean isLast() {
// TODO Auto-generated method stub
return false;
} @Override
public void setPageNumber(int pageNumber) { if (pageNumber <= 1) {
this.pageNumber = 1;
} else if (pageNumber > maxPages) {
this.pageNumber = maxPages;
}else{
this.pageNumber = maxPages;
} } @Override
public void setPageSize(int pageSize) {
this.pageSize = pageSize; }}静态工厂package com.guo.factory;import com.guo.dao.Pagination;
import com.guo.daoimpl.MSSQLPagination;public class MSSQLPaginationModel {
private static Pagination mssqlpg = new MSSQLPagination(); public static Pagination getPaginationDAO(String tableName, String tableId,
int pageSize, int pageNumber) {
mssqlpg.setTableName(tableName);
mssqlpg.setTableId(tableId);
mssqlpg.setPageSize(pageSize);
mssqlpg.setPageNumber(pageNumber);
mssqlpg.init();
return mssqlpg;
}
}
//控制层package com.guo.servlet;import java.io.IOException;
import java.util.ArrayList;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.guo.daoimpl.MSSQLPagination;
import com.guo.factory.MSSQLPaginationModel;public class PageGetLastServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { MSSQLPagination mp = (MSSQLPagination)request.getSession().getAttribute("MSSQLPagination");
int maxPage = mp.getMaxPages();
ArrayList<Object> userslist = MSSQLPaginationModel.getPaginationDAO(new String("users"),
new String("userid"), 12, maxPage).getList();
request.getSession().setAttribute("userslist", userslist);
response.sendRedirect("admin/usersManage.jsp");
}}献丑了~