发表于: 2017-08-14 22:46:27

4 1021


今天完成了什么:

        完成搜索和上一页下一页功能

思路是通过Ajax向服务器发送一个请求:

function moreNext(){
$.get('portfolio/page_next', back);
}
function moreLast(){
$.get('portfolio/page_last', back);
}
function back(data) {
var resultObj = $("#result");
   resultObj.html(data);
}

然后服务器判断并处理,然后返回下一页的数据data,然后用Ajax对象返回到页面的result节点,实现显示,以下是点击下一页请求的代码,

内含了判断是否为搜索结果集的判断,和范围超出的判断,如果旧页数+40大于总页数,则新开始的地方等于总页数减去总数除以40的余数,

这个地方卡了挺长时间,不知道如何把当前页面的开始保存下来,后来想到了用Cookie,先判断Cookie里是否有页面数,如果有就把当前的页数保存下来,

并且加上40,这样获取到当前请求数据的开始页数,如果没有就新建页数为0....挺绕的就不多说了

@RequestMapping(value = "portfolio/page_next")
public ModelAndView page_next(HttpServletRequest request, HttpServletResponse response) {
   ModelAndView mav = new ModelAndView();
   Carving carving = new Carving();
   Cookie cokPage = CookieUtil.getCookieByName(request, "start");
   Cookie cokSearch = CookieUtil.getCookieByName(request, "search");

   if (cokPage != null) {
       String oldpage = cokPage.getValue();
       Integer i = carvingMapper.sum();
       /**判断是否还有下一页*/
       if ((Integer.parseInt(oldpage) + 40) <= i) {
           String start = String.valueOf(Integer.parseInt(oldpage) + 40);
           CookieUtil.addCookie(response, "start", start);
           carving.setStart(Integer.parseInt(start));
           PageUtil.get(cokSearch, carving, carvingMapper, mav);
       } else {
           Integer sum=i-i%40;
           CookieUtil.addCookie(response, "start", sum.toString());
           carving.setStart(sum);
           PageUtil.get(cokSearch, carving, carvingMapper, mav);
       }

       } else {
       String s = "40";
       CookieUtil.addCookie(response, "start", s);
       carving.setStart(40);
       List<Carving> cs = carvingMapper.list(carving);
       mav.addObject("cs", cs);
       mav.setViewName("page");
   }
      return mav;

}

         这是前段部分代码

           

点击下一页


搜索bb

还有隐藏的管理员界面

不过还没加拦截器


遇到的困难:

     无

收获:

      对之前学过的都进行了复习,发现了之前的不足,并学习改进

明天的计划:

      把图片上传加上


返回列表 返回列表
评论

    分享到