zr实训7.23

任务实现分页搜索功能
1,bean(pageInfo list size currentPage)

public class PageInfo<T> {
    private List<T> list;     //用户列表
    private int totalCount;   //用户数
    private int size;         //每页显示用户数
    private int totalPage;    //总页数
    private int currentPage;  //当前页
    public int getTotalCount() {
        return totalCount;
    }
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }
    public List<T> getList() {
        return list;
    }
    public void setList(List<T> list) {
        this.list = list;
    }
    public int getSize() {
        return size;
    }
    public void setSize(int size) {
        this.size = size;
    }
    public int getTotalPage() {
        return totalPage;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    @Override
    public String toString() {
        return "PageInfo{" +
                "list=" + list +
                ", size=" + size +
                ", totalPage=" + totalPage +
                ", currentPage=" + currentPage +
                '}';
    }
}

2,dao (findAll(start,5),count)

public interface IUserDao {
    List<User> findAll(@Param("start") int start , @Param("size") int size,@Param("username") String username);
    int getTotalCount(@Param("username") String username);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.whut.dao.IUserDao">
    <select id="findAll" resultType="user">
        select * from tb_user
        <if test="username!=null and username !=''">
            where username like concat("%",#{username},"%")
        </if>
        limit #{start},#{size}
    </select>
    <select id="getTotalCount" resultType="int">
        select count(*) from tb_user
        <if test="username!=null and username !=''">
            where username like concat("%",#{username},"%")
        </if>
    </select>
</mapper>

3,service(pageInfo)

package com.zr.service.impl;

import com.zr.bean.PageInfo;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements IUserService {

    @Autowired
    private IUserDao userDao;

    @Override
    public int login(String username, String password) {
        User user = userDao.findUserByUsername(username);
        if(user!=null&&user.getPassword().equals(password)){
            return user.getId();
        }
        return -1;
    }

    @Override
    public PageInfo<User> findAll(int currentPage,String username) {
        PageInfo pageInfo=new PageInfo();


        int totalCount=userDao.getTotalCount(username);
        pageInfo.setTotalCount(totalCount);
        double d=totalCount/5.0;
        int tp= (int) Math.ceil(d);
        pageInfo.setTotalPage(tp);
        pageInfo.setSize(5);
        if(currentPage<1){
            pageInfo.setCurrentPage(1);
        }else if(currentPage>tp){
            pageInfo.setCurrentPage(tp);
        }else {
            pageInfo.setCurrentPage(currentPage);
        }
        int start=(pageInfo.getCurrentPage()-1)*5;
        List<User> userList = userDao.findAll(start, 5,username);
        pageInfo.setList(userList);
        return pageInfo;
    }

    @Override
    public void deleteById(int id) {
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) {
        userDao.add(user);
    }

    @Override
    public User selectUserById(int id) {
        return userDao.selectUserById(id);
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }
}

4,controller(pageinfo对象传递给前端页面)

@RequestMapping("findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage, String username,
                            @RequestParam(defaultValue = "0") int type,
                            HttpSession session){
    if(type==1){
        session.setAttribute("searchname",username);
    }else if(type==0) {
        username= (String) session.getAttribute("searchname");
    }else if(type==2){
        session.removeAttribute("searchname");
    }
    PageInfo<User> pageInfo = userService.findAll(currentPage,username);
    ModelAndView mv=new ModelAndView();
    mv.setViewName("user-list");
    mv.addObject("pageInfo",pageInfo);
    return mv;
}

搜索:loginfilter

package com.zr.filter;

import com.zr.bean.User;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class LoginFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request= (HttpServletRequest) servletRequest;
        HttpServletResponse response= (HttpServletResponse) servletResponse;
        HttpSession session = request.getSession();
        User user= (User) session.getAttribute("user");
        String url=request.getRequestURL().toString();
        if(user==null && url.indexOf("login.do")==-1){
            response.sendRedirect("../login.jsp");
        }else {
            filterChain.doFilter(request,response);
        }
    }

    @Override
    public void destroy() {

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值