Heim  >  Fragen und Antworten  >  Hauptteil

java - 怎么清除一个方法里面缓存的数据?

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

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

PHPzPHPz2765 Tage vor593

Antworte allen(5)Ich werde antworten

  • 高洛峰

    高洛峰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;

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:47:41

    定义为局部变量返回

    Antwort
    0
  • PHP中文网

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

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:47:41

    页面有个隐藏域,用来储存当前第几页currentPageNo,跳转页面的时候将currentPageNo提交到服务器并赋值。
    服务端的currentPageNo是不是局部的无所谓,反正每次都重新赋值的,如果没有值提交过来,就赋值为1

    你的action都继承一个baseAction,这个baseAction实现了Ipage接口,对于里面是对page的实现,包括总页数,第几页,每页大小。。。

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-18 09:47:41

    局部变量搞定

    Antwort
    0
  • StornierenAntwort