分页工具


由于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>

运行效果
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值