闲的无聊,用spring3的mvc写了一个google的分页,这个小列子是基于注解的控制部分如下package com.my.google;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.my.common.Dispatcher;
/**
* @author 姜绵岳
* @version 创建时间:2011-4-9 下午05:02:51
* 一个类似google的分页的Action
*/
@Controller
public class GoogleController{
/**
* 一个类似谷歌的分页
* @return
*/
@RequestMapping("/google")
public String google(HttpServletRequest request,HttpServletResponse response){
String pageNum=request.getParameter("page"); //当前页
int page=0;
if(null==pageNum||"".equals(pageNum)){
page=1;
}else{
page=Integer.parseInt(pageNum);
}
String forwardUrl="google.do?page=";
List<String> list=new ArrayList<String>(); //存放模拟数据
for(int i=0;i<126;i++){
list.add("name xuehan "+i);
}
Dispatcher dispath=new Dispatcher();
Map map=dispath.getDispatch(forwardUrl, page, 10, list);
request.setAttribute("list",map.get("list"));
request.setAttribute("tag",map.get("tag"));
return "google";
}
}
package com.my.common;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 姜绵岳
* @version 创建时间:2011-4-9 下午05:08:59 类说明
*/
public class Dispatcher<T> {
/**
* action调用分页方法 参数:forwordUrl 分页url,page当前页数,count每页显示条数,list要分页的集合
*/
public Map getDispatch(String forwardUrl, int page, int count, List<T> list) {
int totalCount = list.size(); // 数据总条数
int totalPage = totalCount / count; // 总页数
if (totalCount % count > 0) {
totalPage = totalCount / count + 1; // 如果总条数%总页数大于0侧总页数加1
}
if (page < 0) {
page = 1; // 如果当前页数小于1,设为1
}
if (page > totalCount) {
page = totalCount;// 如果当前页数大于总
}
int currentCount = (page-1) * count; // 当前提条数
int endCount = 0; // 结束条数
if (totalCount - currentCount >= count) {
endCount = currentCount + count;
} else {
endCount = totalCount - 1;
}
List newList = new ArrayList();// 存放返回集合
System.out.println("current " + currentCount + " end" + endCount);
for (int i = currentCount; i <= endCount; i++) {
newList.add(list.get(i));
}
// 获得分页字符串
String tag = getTag(forwardUrl, page, totalPage, currentCount);
Map map = new HashMap();
map.put("list", newList);
map.put("tag", tag);
return map;
}
/**
* 分页标签书写
*
* @param forwardUrl
* @param page
* @param totalPage
* @param currentCount
* @return
*/
private String getTag(String forwardUrl, int page, int totalPage,
int currentCount) {
StringBuffer sb = new StringBuffer();
if(1!=page){
sb.append("<a href='" + forwardUrl + (page - 1) + "'>" + "上一页"
+ "</a> ");
}
if (totalPage <= 20) {
if (totalPage >= 10) {
if (totalPage - page > 10) {
for (int i = 1; i < page + 10; i++) {
if (i == page) {
sb.append(i + " ");
continue;
}else{
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
} else {
for (int i = 1; i <= totalPage; i++) {
if (i == page) {
sb.append(i + " ");
continue;
}
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
} else {
for (int i = 1; i < totalPage; i++) {
if (i == page) {
sb.append(i + " ");
continue;
}
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
} else if (totalPage > 20) {
if (page > 10) {
if (totalPage - page > 10) {
for (int i = page - 10; i < page + 10; i++) {
if (i == page) {
sb.append(i + " ");
continue;
} else {
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
} else {
for (int i = page - 10; i <= totalPage; i++) {
if (i == page) {
sb.append(i + " ");
continue;
} else {
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
}
} else {
for (int i = 1; i < page + 10; i++) {
if (i == page) {
sb.append(i + " ");
continue;
}
sb.append("<a href='" + forwardUrl + i + "'>" + i
+ "</a> ");
}
}
}
if(totalPage!=page){
sb.append("<a href='" + forwardUrl + (page + 1) + "'>" + "下一页"
+ "</a> ");
}
return sb.toString();
}
}
分享到:
相关推荐
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
1.通过google ehcache-spring-annotatios.jar自动注解方式实现整合Spring+Ehcache。 2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。...
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
4、本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 5、另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...