package com.rainnie.utils;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 显示格式:首页 上一页 1 2 3 4 5下一页 尾页
*/
public class NavigationTag extends TagSupport {
static final long serialVersionUID = 2372405317744358833L;
/**
* request 中用于保存Page<E> 对象的变量名,默认为“page”
*/
private String bean = "page";
/**
* 分页跳转的url地址,此属性必须
*/
private String url = null;
/**
* 显示页码数量
*/
private int number = 5;
@Override
public int doStartTag() throws JspException {
JspWriter writer = pageContext.getOut();
HttpServletRequest request =
(HttpServletRequest) pageContext.getRequest();
Page page = (Page) request.getAttribute(bean);
if (page == null)
return SKIP_BODY;
url = resolveUrl(url, pageContext);
try {
// 计算总页数
int pageCount = page.getTotal() / page.getSize();
if (page.getTotal() % page.getSize() > 0) {
pageCount++;
}
writer.print("<nav><ul class=\"pagination\">");
//首页链接路径
String homeUrl = append(url, "page", 1);
//末页链接路径
String backUrl = append(url, "page", pageCount);
// 显示“上一页”按钮
if (page.getPage() > 1) {
String preUrl = append(url, "page", page.getPage() - 1);
preUrl = append(preUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + homeUrl + "\">" + "首页</a></li>");
writer.print("<li><a href=\"" + preUrl + "\">" + "上一页</a></li>");
} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "首页 </a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "上一页 </a></li>");
}
// 显示当前页码的前2页码和后两页码
// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
int indexPage =1;
if(page.getPage() - 2 <=0){
indexPage=1;
}else if(pageCount-page.getPage() <=2){
indexPage=pageCount-4;
}else{
indexPage= page.getPage() - 2;
}
for (int i= 1;i <= number && indexPage <= pageCount;indexPage++,i++){
if (indexPage == page.getPage()) {
writer.print("<li class=\"active\"><a href=\"#\">" + indexPage
+"<spanclass=\"sr-only\"></span></a></li>");
continue;
}
String pageUrl = append(url, "page", indexPage);
pageUrl = append(pageUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + pageUrl + "\">" + indexPage + "</a></li>");
}
// 显示“下一页”按钮
if (page.getPage() < pageCount) {
String nextUrl = append(url, "page", page.getPage() + 1);
nextUrl = append(nextUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + nextUrl + "\">" + "下一页</a></li>");
writer.print("<li><a href=\"" + backUrl + "\">" + "尾页</a></li>");
} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "下一页</a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "尾页</a></li>");
}
writer.print("</nav>");
} catch (IOException e) {
e.printStackTrace();
}
return SKIP_BODY;
}
private String append(String url, String key, int value) {
return append(url, key, String.valueOf(value));
}
/**
* 为url 参加参数对儿
*/
private String append(String url, String key, String value) {
if (url == null || url.trim().length() == 0) {
return "";
}
if (url.indexOf("?") == -1) {
url = url + "?" + key + "=" + value;
} else {
if (url.endsWith("?")) {
url = url + key + "=" + value;
} else {
url = url + "&" + key + "=" + value;
}
}
return url;
}
/**
* 为url 添加翻页请求参数
*/
private String resolveUrl(String url,
javax.servlet.jsp.PageContext pageContext) throws JspException {
Map params = pageContext.getRequest().getParameterMap();
for (Object key : params.keySet()) {
if ("page".equals(key) || "rows".equals(key)){
continue;
}
Object value = params.get(key);
if (value == null){
continue;
}
if (value.getClass().isArray()) {
url = append(url, key.toString(), ((String[]) value)[0]);
} else if (value instanceof String) {
url = append(url, key.toString(), value.toString());
}
}
return url;
}
public String getBean() {
return bean;
}
public void setBean(String bean) {
this.bean = bean;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public void setNumber(int number) {
this.number = number;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
jdk8+tomcat8+mysql+eclipse
共124个文件
jar:35个
java:17个
class:17个
需积分: 9 8 下载量 31 浏览量
2018-09-12
12:24:30
上传
评论 1
收藏 16.21MB RAR 举报
温馨提示
spring+spring mvc+mybatis+bootstrap+jquery简单的增删改查
资源推荐
资源详情
资源评论
收起资源包目录
jdk8+tomcat8+mysql+eclipse (124个子文件)
NavigationTag.class 5KB
CustomerController.class 4KB
Customer.class 4KB
CustomerServiceImpl.class 3KB
LoginInterceptor.class 2KB
BaseDict.class 2KB
UserController.class 2KB
User.class 2KB
Page.class 1KB
UserServiceImpl.class 941B
BaseDictServiceImpl.class 918B
CustomerService.class 689B
CustomerDao.class 576B
UserDao.class 328B
BaseDictService.class 291B
BaseDictDao.class 279B
UserService.class 204B
.classpath 879B
org.eclipse.wst.common.component 550B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.min.css 118KB
font-awesome.min.css 21KB
dataTables.bootstrap.css 7KB
sb-admin-2.css 6KB
style.css 2KB
metisMenu.min.css 781B
boot-crm.css 363B
fontawesome-webfont.eot 55KB
ant-1.9.6.jar 1.94MB
aspectjweaver-1.8.4.jar 1.78MB
mybatis-3.4.2.jar 1.52MB
jackson-databind-2.8.6.jar 1.18MB
spring-context-4.3.6.RELEASE.jar 1.08MB
spring-core-4.3.6.RELEASE.jar 1.07MB
mysql-connector-java-5.1.40-bin.jar 968KB
spring-webmvc-4.3.6.RELEASE.jar 893KB
log4j-core-2.3.jar 808KB
spring-web-4.3.6.RELEASE.jar 798KB
spring-beans-4.3.6.RELEASE.jar 745KB
javassist-3.21.0-GA.jar 718KB
log4j-1.2.17.jar 478KB
commons-lang3-3.4.jar 424KB
spring-jdbc-4.3.6.RELEASE.jar 417KB
spring-aop-4.3.6.RELEASE.jar 371KB
cglib-3.2.4.jar 293KB
jackson-core-2.8.6.jar 275KB
spring-tx-4.3.6.RELEASE.jar 261KB
spring-expression-4.3.6.RELEASE.jar 257KB
ognl-3.1.12.jar 230KB
taglibs-standard-impl-1.2.5.jar 202KB
commons-dbcp2-2.1.1.jar 170KB
log4j-api-2.3.jar 133KB
commons-pool2-2.4.2.jar 109KB
commons-logging-1.2.jar 60KB
spring-aspects-4.3.6.RELEASE.jar 57KB
jackson-annotations-2.8.6.jar 54KB
asm-5.1.jar 52KB
mybatis-spring-1.3.1.jar 52KB
slf4j-api-1.7.22.jar 40KB
taglibs-standard-spec-1.2.5.jar 39KB
ant-launcher-1.9.6.jar 18KB
slf4j-log4j12-1.7.22.jar 10KB
aopalliance-1.0.jar 4KB
NavigationTag.java 5KB
CustomerController.java 4KB
Customer.java 3KB
CustomerServiceImpl.java 2KB
BaseDict.java 2KB
LoginInterceptor.java 1KB
User.java 1KB
UserController.java 1KB
Page.java 662B
CustomerService.java 654B
CustomerDao.java 642B
UserServiceImpl.java 573B
BaseDictServiceImpl.java 537B
BaseDictService.java 240B
UserDao.java 233B
BaseDictDao.java 232B
UserService.java 159B
timg.jpg 121KB
rights.jpg 110KB
rightbg.jpg 1KB
jquery-1.11.3.min.js 94KB
jquery.dataTables.min.js 80KB
bootstrap.min.js 36KB
dataTables.bootstrap.min.js 2KB
metisMenu.min.js 2KB
sb-admin-2.js 1KB
.jsdtscope 567B
customer.jsp 21KB
login.jsp 2KB
index.jsp 172B
MANIFEST.MF 39B
org.eclipse.wst.jsdt.ui.superType.name 6B
FontAwesome.otf 84KB
bg.png 2KB
org.eclipse.jdt.core.prefs 364B
.project 907B
log4j.properties 332B
共 124 条
- 1
- 2
资源评论
a15578889598
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功