您的位置:首页 > 其它

基于增删查改功能的,用户列表分页显示、搜索功能实现

2020-07-23 20:56 211 查看

改动代码:
一、bean.PageInfo代码:

//PageInfo.java
public class PageInfo<T> {
//存储用户列表
private List<T> list;
//单页的数据项数量
private int size;
//总页数
private int totalPage;
//数据项总数
private int totalCount;
//当前页数
private int currentPage;

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 getTotalCount() {
return totalCount;
}

public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}

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 +
", totalCount=" + totalCount +
", currentPage=" + currentPage +
'}';
}
}

二、UserDao中新增getTotalCount,修改findAll:

//UserDao.java
public interface UserDao {

User findByUserName(String username);

//List<User> findAll();
//显示在同一页的UserList
List<User> findAll(@Param("start") int start,@Param("username") String username);

void add(User user);

void deleteByID(int id);

User selectByID(int id);

void update(User user);

//获取搜索的总数
int getTotalCount(@Param("username")String username);

}

三、UserMapper新增sql语句

<mapper namespace="com.whut.dao.UserDao" >

<select id="findAll" resultType="User">
select * from user
<if test="username!=null and username!=''">
where username like concat("%",#{username},"%")
</if>
limit #{start},5
</select>

<select id="getTotalCount" resultType="int">
select count(*) from user
<if test="username!=null and username!=''">
where username like concat("%",#{username},"%")
</if>
</select>
</mapper>

四、更新在UserServiceImpl.java与UserController.java中的findAll方法:

//UserServiceImpl.java
@Override
public PageInfo<User> findAll(int currentPage, String username) {
PageInfo<User> pageInfo = new PageInfo<>();
pageInfo.setSize(5);
//获取总共的记录条数
int tc = userDao.getTotalCount(username);
//获取总页数
int tp = (int)Math.ceil(tc/5.0);
pageInfo.setTotalCount(tc);
//设置页数的范围
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,username);
pageInfo.setList(userList);
return pageInfo;
}
//UserController.java
@RequestMapping("/findAll.do")
public  ModelAndView findAll(@RequestParam(defaultValue = "1")int currentPage, String username,
@RequestParam(defaultValue = "0")int type, HttpSession httpSession){
if(type==1){
httpSession.setAttribute("searchName",username);
}else{
username=(String) httpSession.getAttribute("searchName");
}
PageInfo<User> pageInfo = userService.findAll(currentPage,username);
ModelAndView mv = new ModelAndView();
mv.addObject("pageInfo",pageInfo);
mv.setViewName("user-list");
return mv;
}

六、新增 user-list.jsp:

<form action="${pageContext.request.contextPath}/user/findAll.do?type=1"
method="post">
<div class="col-md-4 data1">
<input type="text" class="form-control" name="username"
placeholder="username" value="">
</div>
<button type="submit" class="btn bg-maroon">搜索</button>
</form>

<div class="box-tools pull-right">
<ul class="pagination">
<li><a href="/user/findAll.do" aria-label="Previous">首页</a></li>
<li><a href="/user/findAll.do?currentPage=${pageInfo.currentPage-1}">上一页</a></li>
<c:forEach begin="1" end="${pageInfo.totalPage}" var="pageNum">
<li><a href="/user/findAll.do?currentPage=${pageNum}">${pageNum}</a></li>
</c:forEach>
<li><a href="/user/findAll.do?currentPage=${pageInfo.currentPage+1}">下一页</a></li>
<li><a href="/user/findAll.do?currentPage=${pageInfo.totalPage}" aria-label="Next">尾页</a></li>
</ul>
</div>

注:本文根据线上实习内容编写,如有雷同纯属同老师

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐