宁波实习Day-5

今天的工作重点是完成分页组件PageHelper的配置和使用,顺带完成了用户管理的增删改查功能。

一.Maven配置

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.0.0</version>
</dependency>

二.在application.xml中配置

<property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysql</prop>
                            <prop key="reasonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
三.Controller层中编写逻辑
@RequestMapping("/findAll.do")
    @ResponseBody
    public ModelAndView findAll(@RequestParam(required = false, defaultValue="1") Integer startPage,
                                @RequestParam(required = false, defaultValue = "2") Integer pageSize) {
        PageHelper.startPage(startPage, pageSize);
        ModelAndView mv = new ModelAndView();
        List<userinfo> userinfos = userInfoService.findAll();
        PageInfo<userinfo> pageInfo = new PageInfo<>(userinfos);
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("user-list");
        return mv;
    }

其中,startPage是当前页面,pageSize为单页显示列表数,最终封装为PageInfo对象,执行跳转。
再来看jsp文件

<div class="box-tools pull-right">
							<ul class="pagination">
								<li><a href="${pageContext.request.contextPath}/user/findAll.do?startPage=1&pageSize=2" aria-label="Previous">首页</a></li>
								<li><a href="${pageContext.request.contextPath}/user/findAll.do?startPage=${pageInfo.pageNum-1}&pageSize=2">上一页</a></li>

								<c:forEach begin="1" end="${pageInfo.pages}" var="pageNumber">
									<li><a href="${pageContext.request.contextPath}/user/findAll.do?startPage=${pageNumber}&pageSize=2">${pageNumber}</a></li>
								</c:forEach>


								<li><a href="${pageContext.request.contextPath}/user/findAll.do?startPage=${pageInfo.pageNum+1}&pageSize=2">下一页</a></li>
								<li><a href="#" aria-label="Next">尾页</a></li>
							</ul>
						</div>

关于页数的显示采用循环显示,始终包括上一页和下一页。并且可以动态设置页数和每页最大列表数。
关于用户的增删改查不再讲述,附代码如下:

@RequestMapping("/toInsert.do")
    public String toInsert() {
        return "user-add";
    }

    @RequestMapping("/insert.do")
    public String insert(userinfo user) {
        boolean tag = userInfoService.insert(user);
        if(tag)
            return "redirect:/user/findAll.do";
        else
            return "../failer";
    }

    @RequestMapping("/toUpdate.do")
    public String toUpdate(Model model, @RequestParam int id) {
        model.addAttribute("user",userInfoService.queryById(id));
        return "user-update";
    }

    @RequestMapping("update.do")
    public String update(userinfo user) {
        boolean tag = userInfoService.update(user);
        if(tag)
            return "redirect:/user/findAll.do";
        else
            return "../failer";
    }

    @RequestMapping("delete.do")
    public String delete(int id) {
        boolean tag = userInfoService.delete(id);
        if(tag)
            return "redirect:/user/findAll.do";
        else
            return "../failer";
    }

    @RequestMapping("/findAll.do")
    @ResponseBody
    public ModelAndView findAll(@RequestParam(required = false, defaultValue="1") Integer startPage,
                                @RequestParam(required = false, defaultValue = "2") Integer pageSize) {
        PageHelper.startPage(startPage, pageSize);
        ModelAndView mv = new ModelAndView();
        List<userinfo> userinfos = userInfoService.findAll();
        PageInfo<userinfo> pageInfo = new PageInfo<>(userinfos);
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("user-list");
        return mv;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值