Heim > Fragen und Antworten > Hauptteil
调用此方法:
int pageNo=ps.getFenyePageNo(param,lastPage);
具体方法:
private int currentPageNo=1;
public int getFenyePageNo(String param, int lastPage) {
if ("first".equals(param) || null == param) {
currentPageNo = 1;
}
else if ("next".equals(param)) {
if (currentPageNo < lastPage) {
System.out.println("当前页3::"+currentPageNo);
currentPageNo++;
}
}
else if ("previous".equals(param)) {
if (currentPageNo > 1) {
currentPageNo--;
}
}
else if ("last".equals(param)) {
currentPageNo = lastPage;
}
return currentPageNo;
}
现在的问题就是::调用一次方法,数据就保存在currentPageNo里面了,需要不停的调用这个方法。
有没有什么办法,能每次调用完这个方法之后,就能清除这个方法里面的数据!!!
清除数据是我想要的结果,,哪位大神有什么好办法吗?????
高洛峰2017-04-18 09:47:41
定义错了,前端只传第几页
,每页size
就行了,然后后端算出limit,offset
,查出数据,返回给前端。
请求和返回如下:
前端请求(仅分页相关数据):
private int pageNo = 1;
/** 每页条数 */
private int pageSize = 10;
后端返回(仅分页相关数据):
/** 第几页 */
private int pageNo = 1;
/** 每页条数 */
private int pageSize = 10;
/** 总页数 */
private int pageCount;
/** 总记录数 */
private int recordCount;
PHP中文网2017-04-18 09:47:41
分页这种问题,在项目中最好有一个公共的基类,公共几类规范好了分页共性。因为所有列表页的查询都需要使用分页的。推荐代码如下:
import java.util.Date;
//类QueryBaseDo.java的实现描述:分页查询对象的基类
public class QueryBaseDo {
/** 查询结果总记录数 */
private Integer totalCount;
// 默认一页10条数据
public static final int DEFAULT_PAGE_SIZE = 10;
// 默认从第一页开始
public static final int DEFAULT_PAGE_NO = 1;
// 页面大小
private int pageSize = DEFAULT_PAGE_SIZE;
// 第几页
private int pageNum = DEFAULT_PAGE_NO;
// 这个值一般由服务端设置
private int total = Integer.MAX_VALUE;
// 是否要获取总页数,如果用户点分页查询第2页到第N页可以不用查询记录总数
private boolean needPageTotal = true;
/**
* 是否进行分页
*/
private boolean doPage = true;
private String creator;
private Date gmtCreate;
private String modifier;
private Date gmtModified;
private String isDeleted = "n";
private Integer skip = 0;
private Integer take = 10;
public Integer getSkip() {
return skip;
}
public void setSkip(Integer skip) {
this.skip = skip;
}
public Integer getTake() {
return take;
}
public void setTake(Integer take) {
this.take = take;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
if (pageSize <= 0) {
pageSize = DEFAULT_PAGE_SIZE;
}
return pageSize;
}
public void setPageSize(int pageSize) {
if (pageSize < 0) {
pageSize = DEFAULT_PAGE_SIZE;
}
this.pageSize = pageSize;
}
public int getPageNum() {
// total已经被赋值,修正pagenum 的值
if (Integer.MAX_VALUE != total && total > 0) {
pageNum = Math.min(pageNum, (int) Math.ceil((double) total / pageSize));
}
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NO;
}
return pageNum;
}
public void setPageNum(int pageNum) {
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NO;
}
this.pageNum = pageNum;
}
public int getStartNum() {
int startNum = getPageSize() * (getPageNum() - 1);
if (startNum < 0) {
startNum = 0;
}
return startNum;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public boolean isNeedPageTotal() {
return needPageTotal;
}
public void setNeedPageTotal(boolean needPageTotal) {
this.needPageTotal = needPageTotal;
}
public boolean isDoPage() {
return doPage;
}
public void setDoPage(boolean doPage) {
this.doPage = doPage;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public Date getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public Date getGmtModified() {
return gmtModified;
}
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
public String getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted;
}
public static int getDefaultPageSize() {
return DEFAULT_PAGE_SIZE;
}
public static int getDefaultPageNo() {
return DEFAULT_PAGE_NO;
}
}
巴扎黑2017-04-18 09:47:41
页面有个隐藏域,用来储存当前第几页currentPageNo,跳转页面的时候将currentPageNo提交到服务器并赋值。
服务端的currentPageNo是不是局部的无所谓,反正每次都重新赋值的,如果没有值提交过来,就赋值为1
你的action都继承一个baseAction,这个baseAction实现了Ipage接口,对于里面是对page的实现,包括总页数,第几页,每页大小。。。