首先要写一个分页的类,主要代码如下:
package com.edie.bcs.utils;
public class PageQueryParam {
private int pageNumber = 1;
private int pageSize = 6;
//开始检索的地方
private int indexNum;
//总的页数
private int pageCount ;
public int getIndexNum() {
this.indexNum =(this.pageNumber-1)*this.pageSize;
return indexNum;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
然后再要写一个页面上实现“首页”“上一页”“下一页”“末页”的freemarker页面,例如是:querypage.ftl,代码如下:
<#-- 分页(Pager对象、链接URL、参数Map、最大页码显示数) -->
<#macro pager pager baseUrl parameterMap = {} maxShowPageCount = 4>
<#local pageNumber = pager.pageNumber />
<#local pageSize = pager.pageSize />
<#local pageCount = pager.pageCount />
<#local parameter = "" />
<#local parameter = parameter + "&pageSize=" + pageSize />
<#list parameterMap?keys as key>
<#if parameterMap[key] != null && parameterMap[key] != "">
<#local parameter = parameter + "&" + key + "=" + parameterMap[key] />
</#if>
</#list>
<#if baseUrl?contains("?")>
<#local baseUrl = baseUrl + "&" />
<#else>
<#local baseUrl = baseUrl + "?" />
</#if>
<#local firstPageUrl = baseUrl + "pageNumber=1" + parameter />
<#local lastPageUrl = baseUrl + "pageNumber=" + pageCount + parameter />
<#local prePageUrl = baseUrl + "pageNumber=" + (pageNumber - 1) + parameter />
<#local nextPageUrl = baseUrl + "pageNumber=" + (pageNumber + 1) + parameter />
<#if maxShowPageCount <= 0>
<#local maxShowPageCount = 4>
</#if>
<#local segment = ((pageNumber - 1) / maxShowPageCount)?int + 1 />
<#local startPageNumber = (segment - 1) * maxShowPageCount + 1 />
<#local endPageNumber = segment * maxShowPageCount />
<#if (startPageNumber < 1)>
<#local startPageNumber = 1 />
</#if>
<#if (endPageNumber > pageCount)>
<#local endPageNumber = pageCount />
</#if>
<#if (pageCount > 1)>
<div class="pager_area">
<ul class="pager">
<li class="pageInfo">
共 ${pageCount} 页
</li>
<#-- 首页 -->
<#if (pageNumber > 1)>
<li class="firstPage">
<a href="${firstPageUrl}">首页</a>
</li>
<#else>
<li class="firstPage">
<span>首页</span>
</li>
</#if>
<#-- 上一页 -->
<#if (pageNumber > 1)>
<li class="prePage">
<a href="${prePageUrl}">上一页</a>
</li>
<#else>
<li class="prePage">
<span>上一页</span>
</li>
</#if>
<#if (startPageNumber > 1)>
<li>
<a href="${baseUrl + "pageNumber=" + (pageNumber - 2) + parameter}">...</a>
</li>
</#if>
<#list startPageNumber .. endPageNumber as index>
<#if pageNumber != index>
<li>
<a href="${baseUrl + "pageNumber=" + index + parameter}">${index}</a>
</li>
<#else>
<li class="currentPage">
<span>${index}</span>
</li>
</#if>
</#list>
<#if (endPageNumber < pageCount)>
<li>
<a href="${baseUrl + "pageNumber=" + (pageNumber + 2) + parameter}">...</a>
</li>
</#if>
<#-- 下一页 -->
<#if (pageNumber < pageCount)>
<li class="nextPage">
<a href="${nextPageUrl}">下一页</a>
</li>
<#else>
<li class="nextPage">
<span>下一页</span>
</li>
</#if>
<#-- 末页 -->
<#if (pageNumber < pageCount)>
<li class="lastPage">
<a href="${lastPageUrl}">末页</a>
</li>
<#else>
<li class="lastPage">
<span>末页</span>
</li>
</#if>
</ul>
</div>
</#if>
</#macro>
在分页查询的Controller中:
/**
* 按姓名分页查询客户的信息
*
* @param customerName
* @param param
* @param model
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping("/findcustomerbyname")
public String pageQueryByName(String customerName, PageQueryParam param,
ModelMap model) {
String sql = "select customername,customersex,customerbirth,customertel,"
+ "customercompany,companyhomepage from customer where customername=? limit ?,?";
String sqlcount = "select count(*) from customer where customername=?";
int totalCount = jdbcTemplate.queryForInt(sqlcount,
new Object[] { customerName });
int pageCount;
if (totalCount % param.getPageSize() == 0) {
pageCount = totalCount / param.getPageSize();
} else {
pageCount = totalCount / param.getPageSize() + 1;
}
Object[] object = new Object[] { customerName, param.getIndexNum(),
param.getPageSize() };
List<Customer> list = jdbcTemplate.query(sql, object, new RowMapper() {
public Customer mapRow(ResultSet rs, int rowNum)
throws SQLException {
Customer customer = new Customer();
customer.setCustomerName(rs.getString("customername"));
customer.setCustomerSex(rs.getString("customersex"));
if (rs.getDate("customerbirth") != null) {
customer.setCustomerBirth(rs.getDate("customerbirth")
.toString());
System.out.println("customerbirth:"
+ rs.getDate("customerbirth").toString());
}
customer.setCustomerTel(rs.getString("customertel"));
customer.setCustomerCompany(rs.getString("customercompany"));
customer.setCompanyHomePage(rs.getString("companyhomepage"));
return customer;
}
});
param.setPageCount(pageCount);
model.addAttribute("param", param);
model.addAttribute("list", list);
System.out.println("size:" + list.size());
return "pageshowcustomer.ftl";
}
最后在显示分页查询内容的页面上:
<div class="changePage">
<div class="snPages">
<#import "querypage.ftl" as p>
<#assign parameterMap = {} />
<@p.pager pager = param baseUrl = "/BCS/pageshowcustomer.htm" parameterMap = parameterMap />
</div>
</div>
分享到:
相关推荐
Spring4 SpringMVC4 Hibernate4 Freemarker Bootstrap3 整合的小DEMO,主要就是一个登录页面,加一个主页面,然后实现增删改查,还有分页的功能 说明:在项目的doc下有数据库文件,新建数据库名为 db_shf,编码设为...
包含框架有:SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid、Freemarker; 集成示例有:增删改查及分页;防XSS、SQL注入; 数据库配置 默认是连接MySQL数据库,支持多数据源,分别连接的db1,db2 ,在项目工程的...
socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 ...
该项目集成了SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid和Freemarker等多个框架。系统提供了完整的用户界面(UI)、增删改查(CRUD)及分页功能,同时具备防SQL注入和XSS攻击拦截等安全特性。通过该项目,...
由Spring-SpringMVC-MyBatis-MySQL数据库开发的一个博客系统 技术 后端 Spring Spring MVC MyBatis druid-数据库连接池 PageHelper-Mybatis通用分页插件 FreeMarker-模板引擎 前端 Bootstrap jQuery jQuery Form Vue...
socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 ...
socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 ...
socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 ...
《基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站(自定义模板)》 本课程适合于各个层次的Java开发人员,对于初级程序员来说,可以在短时间内迅速提高开发能力,掌握流行的技术,把握技术的发展脉络。...
技术框架:SpringBoot + lombok + MyBatis + 分页助手 + freemarker + SpringMVC + SpringMail 系统功能: 这是一套轻量级的CRM管理系统源码,基于SSM的SpringBoot架构。 这套源码用到很多潮流技术,包括SpringBoot...
这套源码用到很多潮流技术,包括SpringBoot、lombok、MyBatis、分页助手、freemarker、SpringMVC、SpringMail、百度地图技术等等 运行环境:IDEA + Tomcat8以上 + MySQL5.5以上 使用技术:SpringBoot + SpringMVC + ...
socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 ...
后台:SSM( springmvc+spring+mybatis) 数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:Activemq,使用spring-jms 负载均衡:...
day02_Dubbo介绍_dubbo框架整合_商品列表查询实现_分页_逆向工程 day03_Git day04_门户网站介绍&商城首页搭建&内容系统创建&CMS实现 day05_首页轮播图显示实现,Redis环境搭建,Redis实现缓存 day06_solr索引库...
Spring,SpringMVC,Spring Cloud相关组件 Mybatis,Maven Mysql,Redis Jquery,Ajax, Solr Android 项目描述: 基于SpringCloud微服务架构的B2C电子商务系统,主要分为用户服务(service-user),管理员服务...
这是一个客户关系管理系统,数据库有19张表,这套源码用到很多潮流技术,包括SpringBoot、lombok、MyBatis、分页助手、freemarker、SpringMVC、SpringMail是系统的主要功能如下 看板:统计业务机会的数量和转化情况 ...
这套项目用到很多潮流技术,包括SpringBoot、lombok、MyBatis、分页助手、freemarker、SpringMVC、SpringMail、百度地图技术等等 技术栈 SpringBoot + SpringMVC + Spring + MyBatis + 百度地图 运行环境 IDEA + ...
自己写项目写出来的SSM框架...1. Spring、SpringMVC、MyBatis 2. MySQL、CGlib、Druid 3. MyBatis分页pagehelper、MyBatis缓存 4. jstl、jsp、Servlet、log4j、freemarker 5. shiro、lombok插件、文件上传 ......等等
web框架spring+springmvc+springjdbc 前端框架:bootstrap 职位和轮播图的CRUD 分页对象—显示职位和轮播管理信息 富文本编辑器wangeditor—优化相关展示信息 页面静态化技术freemarker—优化访问服务器过多,效率低 ...
这套源码用到很多潮流技术,包括SpringBoot、lombok、MyBatis、分页助手、freemarker、SpringMVC、SpringMail、百度地图技术等等 运行环境:IDEA + Tomcat8以上 + MySQL5.5以上 使用技术:SpringBoot + SpringMVC +...