pager.tld
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>Pager</description> <tlib-version>1.0</tlib-version> <short-name>page</short-name> <uri></uri> <tag> <name>createPager</name> <tag-class>com.test.utils.Pager</tag-class> <body-content>JSP</body-content> <attribute> <name>curPage</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> <attribute> <name>totalPage</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> <attribute> <name>pageSize</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> <attribute> <name>totalCount</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.Integer</type> </attribute> <attribute> <name>formId</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> </attribute> </tag> </taglib>
Pager.java
import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; /*** * 分页控件 * @author 花非花雾非雾 */ public class Pager extends TagSupport { private static final long serialVersionUID = 1L; private Integer curPage; private Integer totalPage; private Integer pageSize = TestConstance.pageSize; private Integer totalCount = 0; private String formId; public void setCurPage(Integer curPage) { this.curPage = curPage; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public void setFormId(String formId) { this.formId = formId; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); int pageNumber = 0; if (totalPage%pageSize==0) { pageNumber = totalPage/pageSize; } else { pageNumber = (totalPage/pageSize)+1; } if (curPage < 1) { curPage = 1; } try { if (pageNumber > 0) { out.print("<script type='text/javascript'>" + "function go(pageNum){" + "var f = document.getElementById('" + formId + "');"+ "f.action = f.action + '?pageNum=' + pageNum + '&pageSize="+pageSize+"';"+ "f.submit();"+ "}" + "</script>"); out.print("<div class='pagination'><ul>"); int start = 1; int end = totalPage; for(int i=4;i>=1;i--){ if((curPage-i)>=1){ start = curPage-i; break; } } for(int i=4;i>=1;i--){ if((curPage+i)<=totalPage){ end = curPage+i; break; } } //如果小于9则右侧补齐 if(end-start+1<=9){ Integer padLen = 9-(end-start+1); for(int i=padLen;i>=1;i--){ if((end+i)<=totalPage){ end = end+i; break; } } } //如果还小于9左侧补齐 if(end-start+1<=9){ Integer padLen = 9-(end-start+1); for(int i=padLen;i>=1;i--){ if((start-i)>=1){ start = start-i; break; } } } if(curPage>1){ if(start>1){ out.print("<li><a href='javascript:go(1)'>首页</a></li>"); } out.print("<li><a href='javascript:go("+(curPage-1)+")'>上一页</a></li>"); } for(int i=start;i<=end;i++){ if(i==curPage){ out.print("<li class='active'><a href='#'>" + i + "</a></li>"); }else{ out.print("<li><a href='javascript:go("+i+")'>" + i + "</a></li>"); } } if(curPage<totalPage){ out.print("<li><a href='javascript:go("+(curPage+1)+")'>下一页</a></li>"); if(end<totalPage){ out.print("<li><a href='javascript:go("+totalPage+")'>尾页</a></li>"); } } out.print("<li><a href='javascript:void(0)'>共" + totalPage + "页" + this.totalCount + "条</a></li>"); out.print("</ul>"); } } catch (IOException e) { e.printStackTrace(); } return super.doStartTag(); } public static Integer getStartIndex(Integer pageNum, Integer pageSize){ Integer res = 0; if(pageNum>0){ res = (pageNum-1)*pageSize; } return res; } }
BaseController
import java.util.Iterator; import java.util.List; import java.util.Map; import org.springframework.ui.Model; public class BaseController { //初始化分页相关信息 protected void initPage(Map<String,Object> map, Integer pageNum, Integer pageSize, Integer totalCount){ if(null==pageSize || pageSize.equals("")){ pageSize = FundTestConstance.pageSize; } if(pageSize>50){ pageSize = 50; } Integer totalPage = (totalCount+pageSize-1)/pageSize; if(null==pageNum){ pageNum = 1; }else if(pageNum>totalPage){ pageNum = totalPage; } map.put("startIndex", Pager.getStartIndex(pageNum, pageSize)); map.put("pageNum", pageNum); map.put("totalPage", totalPage); map.put("pageSize", pageSize); map.put("totalCount", totalCount); } //将相关数据放入model protected void initResult(Model model, List<Object> list, Map<String,Object> map){ model.addAttribute("list", list); Iterator it = map.entrySet().iterator(); while(it.hasNext()){ Map.Entry m = (Map.Entry)it.next(); model.addAttribute(m.getKey().toString(), m.getValue()); } } }
TestController.java
@Controller public class TestController extends BaseController{ @Autowired private TestService testService; public TestService getTestService() { return testService; } public void setTestService(TestService testService) { this.testService = testService; } @RequestMapping("/test") public String test(Model model, @RequestParam(required=false) String type, @RequestParam(required=false) Integer pageNum, @RequestParam(required=false) Integer pageSize) { Map<String,Object> map = new HashMap<String,Object>(); map.put("type", type); Integer totalCount = this.testService.getTestsCount(map); this.initPage(map, pageNum, pageSize, totalCount); List list = this.testService.getTests(map); this.initResult(model, list, map); return "test"; } @RequestMapping("/test/add") public String testAdd(@RequestParam String type,Model model) { Test test = new Test(); test.setType(type); this.testService.addTest(test); return this.test(model,null,null,null); } @RequestMapping("/test/del") public String testDel(@RequestParam(required=true) Integer id, @RequestParam(required=false) Integer pageNum, @RequestParam(required=false) Integer pageSize, Model model) { this.testService.delTest(id); return this.test(model, null, pageNum, pageSize); } @RequestMapping("/test/toEdit") public String testToEdit(@RequestParam(required=true) Integer id, Model model) { Test test = this.testService.getTestById(id); model.addAttribute("test", test); return "testEdit"; } @RequestMapping("/test/edit") public String testedit(@RequestParam(required=true) Integer id, @RequestParam String type, @RequestParam(required=false) Integer pageNum, @RequestParam(required=false) Integer pageSize, Model model) { Test test = new Test(); test.setType(type); this.testService.editTest(test); return this.test(model, null, pageNum, pageNum); } }
TestMapper.xml
<select id="getTests" resultMap="baseResultMap" parameterType="map"> SELECT id, name, type, create_date, update_date FROM test WHERE 1=1 <if test="type!=null and type!=''"> AND type = #{type} </if> limit #{startIndex},#{pageSize} </select> <select id="getTestsCount" resultType="java.lang.Integer" parameterType="map"> SELECT COUNT(1) FROM test WHERE 1=1 <if test="type!=null and type!=''"> AND type = #{type} </if> </select>
相关推荐
Spring + Spring MVC + Mybatis + Maven搭建多模块的web项目 里面包含了很多配置方面的注释,方便日后维护。 采用了通用Mapper封装了单表的增删改查操作 github地址:https://gitee.com/free/Mapper 采用了分页...
自己花5天时间写的,带分页查询 模糊查询 按时间查询 js验证手机 验证身份 验证姓名, ... 运行环境 jdk7+tomcat7+mysql+eclipse+maven 项目技术(必填) ...spring+spring mvc+mybatis+bootstrap+jquery+jsp
包含源码、数据库文件、演示视频、相关参考论文。 由SpringMVC+MyBatis为主要框架,前端主要由bootstrap完成。数据库交互查询用到分页。...spring+spring mvc+mybatis+JavaScript、jQuery、bootstrap4、particles.js
自己花5天时间写的,带分页查询 模糊查询 按时间查询 js验证...spring+spring mvc+mybatis+bootstrap+jquery+jsp http://localhost:8080/demoSSM/index.jsp http://localhost:8080/demoSSM/login.jsp 账号 2 密码 2
在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...
【SpringCloud集成MySQL+MyBatis+分页可运行Demo详解】 在当今的微服务架构中,SpringCloud作为主流的微服务治理框架,被广泛应用于各种复杂系统的构建。本示例是一个基于SpringCloud的后端服务,它整合了MySQL...
本项目“mybatis分页(struts2+spring+mybatis)”演示了如何在Java Web应用中实现基于MyBatis的分页功能,结合Struts2和Spring框架,提供了一个完整的解决方案。下面将详细解释这个项目涉及的知识点。 1. **...
该项目结合了Spring和MyBatis两大流行框架,提供了从数据库查询数据并进行分页显示的全套解决方案。 【描述】提到,此项目包括了SQL语句文件,这些文件是为MySQL数据库设计的。用户需要先根据提供的SQL创建相应的...
项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到...Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建
在本项目中,我们主要探讨的是如何利用Spring4 MVC、Maven、MySQL数据库、MyBatis框架以及前端JSON数据来动态生成表格。这是一个常见的Web应用开发模式,它可以帮助开发者快速构建数据驱动的Web应用程序。 首先,...
由Spring-SpringMVC-MyBatis-MySQL数据库开发的一个博客系统 技术 后端 Spring Spring MVC MyBatis druid-数据库连接池 PageHelper-Mybatis通用分页插件 FreeMarker-模板引擎 前端 Bootstrap jQuery jQuery Form Vue...
ssm(spring+spring mvc+mybatis)+bootstrap开发***报警后台管理系统 项目描述 自己花5天时间写的,带分页查询 模糊查询 按时间查询 js验证手机 验证身份证 验证姓名, 配置文件把jdbc密码改成自己的就可以用了 ...
在本教程中,我们将探讨如何使用Spring Boot、MyBatis、MyBatisPlus、MySQL和Bootstrap来构建一个完整的Web应用,包括用户登录功能和用户管理模块,实现增删改查及分页显示。以下是各个技术组件在项目中的作用和实现...
本项目是高质量的在线js电子签名SSM实现增删改查及分页查询实例,非常值得学习,使用了spring MVC+spring+mybatis 框架,mysql数据库,电子签名的数据使用base64存储于数据库,上传图片在前端进行压缩将base64上传至...
在本项目中,我们主要探讨的是使用JAVA技术栈,结合Maven、Spring Boot、Mybatis以及Bootstrap进行Web应用开发中的增删改查(CRUD)和分页功能的实现。以下将详细介绍这些技术及其在实战中的应用。 1. **JAVA**:...
ssm学生宿舍管理系统,maven多模块搭建,实现用户分角色登录+分页等技术 项目描述 maven分模块项目+SSM宿舍管理系统+spring mvc+jquery...spring+spring mvc+mybatis+bootstrap+jquery+jsp jar包文件 maven多模块搭建
基于spring+spring MVC+MyBatis的BOOT客户管理系统,后台使用SSM框架进行编写,前台页面使用Bootstrap和jquery框架完成的页面展示功能 系统主要实现两大功能模块:用户登录和客户管理 用户登录包含:用户登录,退出...
本项目是一个基于Spring、Spring MVC和MyBatis(SSM)框架的员工管理系统。系统主要实现了对员工和部门信息的增删改查(CRUD)操作。前端使用了Bootstrap和jQuery框架,数据库采用MySQL。项目通过Maven进行构建,并...
系统使用LayUI和Bootstrap进行前端页面的构建,后端采用Spring MVC进行请求处理,MyBatis进行数据库操作,数据库使用MySQL,运行在Tomcat 9服务器上。系统实现了用户的登录验证以及对客户信息的增删改查功能。 ## ...
后台 试卷管理(增、删、改、查) 题库管理(增、删、改、查) ...本地准备开发工具IDE,建议使用eclipse 或者springSTS 安装JDK1.8,并配置环境变量 安装maven,并配置本地仓库 安装mysql5.X并配置