发表于: 2017-08-14 22:46:27
4 1022
今天完成了什么:
完成搜索和上一页下一页功能
思路是通过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
还有隐藏的管理员界面
不过还没加拦截器
遇到的困难:
无
收获:
对之前学过的都进行了复习,发现了之前的不足,并学习改进
明天的计划:
把图片上传加上
评论