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

调用此方法:
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

学习是最好的投资!

Antworte allen(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的实现,包括总页数,第几页,每页大小。。。

刘奇

局部变量搞定

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage