java - 怎么清除一个方法里面缓存的数据?
PHPz
PHPz 2017-04-18 09:45:41
0
5
592

调用此方法:
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里面了,需要不停的调用这个方法。
有没有什么办法,能每次调用完这个方法之后,就能清除这个方法里面的数据!!!

清除数据是我想要的结果,,哪位大神有什么好办法吗?????

PHPz
PHPz

学习是最好的投资!

全部回覆(5)
小葫芦

定義錯了,前端只傳第几页每页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;
伊谢尔伦

定義為局部變數回傳

洪涛

分頁這種問題,在專案中最好有一個公共的基類,公共幾類規範好了分頁共性。因為所有清單頁的查詢都需要使用分頁的。推薦代碼如下:

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;
    }

}
巴扎黑

頁面有個隱藏域,用來儲存目前第幾頁currentPageNo,跳轉頁面的時候將currentPageNo提交到伺服器並賦值。
服務端的currentPageNo是不是局部的無所謂,反正每次都重新賦值的,如果沒有值提交過來,就賦值為1

你的action都繼承一個baseAction,這個baseAction實現了Ipage接口,對於裡面是對page的實現,包括總頁數,第幾頁,每頁大小。 。 。

刘奇

局部變數搞定

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!