1.思路来源:http://blog.csdn.net/zhshulin/article/details/26447713
2.当中解释不清楚的地方进行的修改
1.mapper.xml中,如果是单表分页的话,不需要加where中的id条件 <select id="findPages" resultType="User">
select * from user limit #{startPos},#{pageSize}
</select>
<select id="findPagesCount" resultType="long">select count(*) from user</select>
所以在mapper的接口中只需要分别定义两个和零个参数即可
<select id="findPages" resultType="User">
select * from user limit #{startPos},#{pageSize}
</select>
<select id="findPagesCount" resultType="long">select count(*) from user</select>
所以在mapper的接口中只需要分别定义两个和零个参数即可 public List<User> findPages(@Param(value="startPos") Integer startPos,@Param(value="pageSize") Integer pageSize);
public long findPagesCount();
2.既然这样的话,在相应的service和service的实现类中也需要对相应的方法进行修改,在这里就不一一重复了。
3.博客中要在service中写入一个方法findPage(),然后在controller里面进行调用,我觉得如果是初学者或者是仅仅是分页的话,可以直接在controller类里面写相应的方法
@RequestMapping(value="findPage.do")
public String findPage(HttpServletRequest request, Model model) {
String pageNow = request.getParameter("pageNow");
Page page = null;
List<User> list = new ArrayList<User>();
int totalCount = (int)userService.findPagesCount();
if(pageNow != null){
page = new Page(totalCount, Integer.parseInt(pageNow));
list = userService.findPages(page.getStartPos(),page.getPageSize());
}else{
page = new Page(totalCount,1);
list = userService.findPages(page.getStartPos(),page.getPageSize());
}
model.addAttribute("list",list);
model.addAttribute("page",page);
return "findAll";
}
只需要将相应的方法调用并且通过model进行保存,在相应的页面进行取值就行,不必像楼主那样进行session验证(或许我还没做到楼主说的那一步)。。。
3.基于做分页的思考
在做分页的时候,我遇到一个很好很好的人,不厌其烦的给我解决了错误,SSM框架整合中的项目,最重要的就是要把SQL语句写好,写通,只要语句是对的,你就可以通过相应的方法去实现,所以说,在利用各个框架之前,要知道每个框架到底扮演的是什么角色,这样才会少走弯路。。
楼主决定好好把SSM的基层搞一搞,当然,后续有相应的更新和理解也会上传上来。