由于mybatis的pagehelp我用测试类写的时候能运行,但是把pagehelp放到controller中时,启动报错,我整了会没整好,所以就自己写了个分页的东西,分页类参照了网上的
分页的实体类
public class ExtBlog extends Blog {
private String username;
private String name;
private String telephone;
private String addrees;
private String contact;
private String email;
private String remark;
private String role;
private String permissions;
private int thumb;
private int step;
.....
}
//分页类
public class PageHelp<T> {
//当前页
private int pageIndex;
//一共多少页
private int pageSize;
//每页显示条数
private int pageCount = 1;
//数据条数
private int count = 1;
//起始位置
private int start;
//结束位置
private int end;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
private List<T> list = null;
public void init (){
int pageSize_x = (int) count/pageCount;
if (count>pageCount){
this.pageSize=count%pageCount==0?pageSize_x:pageSize_x+1;
}else {
this.pageSize = 1;
}
//判断当前页面
if (pageSize > pageIndex){
pageIndex = 1;
}else {
pageIndex = pageSize ;
}
//根据当前页计算起始和结束条目
this.start=(pageIndex-1)*pageCount;
this.end=pageIndex*pageCount;
}
public PageHelp(){
super();
}
public PageHelp(int pageIndex,int count,int pageCount){
super();
this.pageIndex = pageIndex;
this.count = count;
this.pageCount = pageCount;
}
public PageHelp(int pageIndex,int count,int pageCount,List<T> list){
super();
this.pageIndex = pageIndex;
this.count = count;
this.pageCount = pageCount;
this.list = list;
}
.....
}
// mapper类
public interface ExtBlogMapper {
public List<ExtBlog> getList(Map<String,Object> map);
public int selectCount();
}
// 接口实现类
@Service
public class BlogServiceImpl implements BlogService {
@Autowired
private ExtBlogMapper extBlogMapper;
@Override
public List<ExtBlog> getBlogList(Map<String,Object> map) {
return extBlogMapper.getList(map);
}
@Override
public int selectCount() {
return extBlogMapper.selectCount();
}
}
<result column="thumb" jdbcType="INTEGER" property="thumb"/>
<result column="step" jdbcType="INTEGER" property="step"/>
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="telephone" jdbcType="VARCHAR" property="telephone" />
<result column="addrees" jdbcType="VARCHAR" property="addrees" />
<result column="contact" jdbcType="VARCHAR" property="contact" />
<result column="email" jdbcType="VARCHAR" property="email" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="role" jdbcType="VARCHAR" property="role" />
<result column="permissions" jdbcType="VARCHAR" property="permissions" />
</resultMap>
<sql id="Base_Column_List">
blg.id, user.username, user.password, user.name, user.telephone, user.addrees,
user.contact, user.email, user.remark, user.role, user.permissions,
blg.user_id, blg.title, blg.push_date, blg.type, blg.update_time,blg.message
</sql>
<select id="getList" resultMap="BaseResultMap" parameterType="map">
select
SUM(ud.`Thumb`) thumb,
SUM(ud.`Step`) step,
<include refid="Base_Column_List" />
FROM
t_sys_user USER
LEFT JOIN t_sys_blog blg
ON blg.user_id = user.id
LEFT JOIN t_sys_updown ud
ON blg.`id` = ud.`blog_id`
GROUP BY blg.id
ORDER BY push_date DESC
limit #{start,jdbcType=INTEGER} , #{end,jdbcType=INTEGER}
</select>
<select id="selectCount" resultType="java.lang.Integer">
select COUNT(*)
from t_sys_user user ,t_sys_blog blg
where blg.user_id = user.id
</select>
</mapper>
// 分页的controller方法
@RequestMapping("list")
public String list(HttpServletRequest request) throws UnknownHostException {
//获取参数
int pageIndex = 0;
String pageIndexStr=request.getParameter("pageIndex");
if(pageIndexStr!=null){
try{
pageIndex=Integer.parseInt(pageIndexStr);
}catch (Exception e) {
}
}
int size = blogService.selectCount();
PageHelp<ExtBlog> page = new PageHelp<ExtBlog>(pageIndex,size,5);
int count = (page.getCount()/page.getPageCount()) + 1;
page.init();
Map<String,Object> map = new HashMap<String, Object>();
map.put("start",(page.getPageIndex()-1)*5);
map.put("end",page.getPageCount());
List<ExtBlog> list = blogService.getBlogList(map);
if (!StringUtils.isEmpty(list)){
request.setAttribute("blog",list);
if (count!=0){
request.setAttribute("count",count);
}
request.setAttribute("page",page);
// request.setAttribute("page", new PageInfo<ExtBlog>(list));
}
return "messages/list.jsp";
}
分页前台代码
<div class="col-md-5 col-sm-12">
<c:if test="${page!= null}">
第<span>${page.pageIndex}</span>页
<c:if test="${page.pageIndex}!= 1">
<a href="/blg/list?pageIndex=${page.pageIndex-1}">上一页</a>
</c:if>
<c:forEach var="page" begin="1" end="${count}">
<a href="/blg/list?pageIndex=${page}">${page}</a>
</c:forEach>
<a href="/blg/list?pageIndex=${page.pageIndex+1}">下一页</a>
</c:if>
</div>
运行效果