/*
* package www.wenju.utils.com;
*
* 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;
*
* import org.springframework.beans.factory.annotation.Value;
*
*//**
* 显示格式:首页 上一页 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;
*//**
* 显示页码数量
*/
/*
* @Value("${navigationTag.page.maxnumber}") private int number;
*
* @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); // 显示“上一页”按钮,当获取页数大于1,则存在首页和前一页的选择,相反则不存在上一页的页面变化 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; //
* 获取页数在2或者以下,则不为中间页 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>"); } // 显示“下一页”按钮,当获取页数小于总页数,添加url,否则直接展示 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; } }
*/
package www.wenju.utils.com;
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;
import org.springframework.context.annotation.Configuration;
/**
* 显示格式:首页 上一页 1 2 3 4 5下一页 尾页
*/
@Configuration
public class NavigationTag extends TagSupport {
static final long serialVersionUID = 2372405317744358833L;
/**
* request 中用于保存Page<E> 对象的变量名,默认为“page”
*/
private String bean = "page";
/**
* 分页跳转的url地址,此属性必须
*/
private String url = null;
/**
* 显示页码数量
*/
// @Value("${navigationTag.page.maxnumber}")
private int number = 5;
/*
* 三种情况导致@Value获取不到配置值
1. 变量被关键字static修饰
2. 类没有使用@Component及其衍生标签修饰
3. 在Bean初始化时构造方法中引用被@Value修饰的变量
*/
public int doStartTag() throws JspException {
JspWriter writer = pageContext.getOut();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
Page page = (Page) request.getAttribute(bean);
// number = page.getNumber();
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;
int indexPage = (page.getPage() - 2 > 0) ? page.getPage() - 2 : 1;
if (page.getPage() - 2 <= 0) {
indexPage = 1;
} else if (pageCount - page.getPage() <= 2) {
indexPage = pageCount - 4;
} else {
indexPage = page.getPage() - 2;
}
// 测试
System.out.println("展示页数"+number+",当前页"+page.getPage()+",总列数"+page.getTotal()+",总页数"+pageCount+",点击页"+indexPage+",获取点击页"+page.getIndexpage());
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.ge
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip 课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip课程设计基于JavaEE的文具销售系统源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
课程设计基于JavaEE的文具销售系统源码.zip (71个子文件)
.classpath 939B
src
www
wenju
controller
com
GoodsController.java 4KB
AdminController.java 4KB
GoodsTypeController.java 4KB
utils
com
Page.java 1KB
NavigationTag.java 10KB
dao
com
AdminDao.xml 995B
GoodsTypeDao.java 834B
GoodsDao.java 759B
GoodsDao.xml 5KB
AdminDao.java 428B
GoodsTypeDao.xml 3KB
service
com
AdminService.java 188B
GoodsTypeService.java 721B
GoodsService.java 926B
po
com
GoodsType.java 1KB
Goods.java 4KB
Administrator.java 1KB
Exchange.java 855B
Order.java 1KB
serviceimpl
com
GoodsTypeServiceImpl.java 3KB
AdminServiceImpl.java 787B
GoodsServiceImpl.java 3KB
interceptor
com
AdminLoginInterceptor.java 2KB
WebContent
WEB-INF
web.xml 2KB
tld
commons.tld 2KB
jsp
goodstypemanage.jsp 23KB
adminlogin.jsp 3KB
goodsmanage.jsp 30KB
adminloginalert.jsp 243B
index.jsp 173B
js
sb-admin-2.js 1KB
bootstrap.min.js 36KB
jquery.dataTables.min.js 80KB
dataTables.bootstrap.min.js 2KB
jquery-1.11.3.min.js 94KB
metisMenu.min.js 2KB
css
style.css 2KB
bootstrap.min.css 135KB
boot-crm.css 338B
sb-admin-2.css 6KB
metisMenu.min.css 873B
font-awesome.min.css 25KB
dataTables.bootstrap.css 7KB
images
SEER.png 1.03MB
微信图片_20210611134349.jpg 44KB
20183502.jpg 23KB
SEER.jpg 1.08MB
郑烁彬公众号:UnseeR.ico 17KB
35010349.jpg 36KB
图标.jpg 110KB
lefts.jpg 126KB
rightbg.jpg 1KB
20183501.jpg 33KB
timg.gif 797KB
META-INF
MANIFEST.MF 36B
fonts
FontAwesome.otf 84KB
fontawesome-webfont.eot 55KB
fontawesome-webfont.woff 64KB
fontawesome-webfont.svg 280KB
fontawesome-webfont.ttf 110KB
.project 886B
.gitignore 28B
config
jdbc.properties 260B
log4.properties 316B
mybatis-config.xml 454B
resource.properties 146B
springmvc-config.xml 3KB
applicationContext-Dao.xml 2KB
applicationContext-Transaction.xml 2KB
applicationContext-Service.xml 1KB
共 71 条
- 1
资源评论
Make程序设计
- 粉丝: 5614
- 资源: 3567
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功