📄 pagetag.java
字号:
package com.laoer.bbscs.web.taglib;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import org.apache.commons.lang.*;
import org.apache.struts.taglib.*;
import com.laoer.bbscs.service.web.*;
/**
* <p>Title: Tianyi BBS</p>
*
* <p>Description: BBSCS</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: Laoer.com</p>
*
* @author Gong Tianyi
* @version 7.0
*/
public class PageTag
extends TagSupport {
protected String name = "";
protected String styleClass = "";
protected String property = null;
protected String scope = null;
protected String argPage = "page";
protected String argTotal = "total";
protected int pageSep = 10;
protected String javaScript = "";
public PageTag() {
}
public int doStartTag() throws JspException {
return (SKIP_BODY);
}
public int doEndTag() throws JspException {
Pages pages;
Object value = TagUtils.getInstance().lookup(pageContext, name, property, scope);
if (value == null) {
return (SKIP_BODY);
}
pages = (Pages) value;
String fileName = pages.getFileName();
if (fileName.indexOf("?") == -1) {
fileName = fileName + "?";
}
else {
if (!fileName.endsWith("&")) {
fileName = fileName + "&";
}
}
//一行显示页数
int pagesep = this.pageSep;
//总行数
int allpagesep = (int) Math.ceil( (pages.getAllPage() + pagesep - 1) / pagesep);
//当前行数
int cpagesep = (int) Math.ceil( (pages.getCpage() + pagesep - 1) / pagesep);
//当前一行显示页数
int cnum;
if (pages.getAllPage() > 0) {
//在页中
if (cpagesep != allpagesep) {
cnum = pagesep;
}
//页末
else {
cnum = pages.getAllPage() % pagesep;
//正好整除
if (cnum == 0) {
cnum = pagesep;
}
}
}
else {
cnum = 0;
}
//System.out.println("cpage:" + pages.getCpage() + " cpagesep:" + cpagesep + " allpagesep:" + allpagesep);
StringBuffer sb = new StringBuffer();
if (StringUtils.isBlank(this.javaScript)) {
/**
* previous butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
sb.append("<span");
if (StringUtils.isNotBlank(this.styleClass)) {
sb.append(" class=\"");
sb.append(this.styleClass);
sb.append("\"");
}
sb.append(">");
if (cpagesep > 1) {
sb.append("<a href=\"");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=1&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
sb.append("\">");
//sb.append("|<");
sb.append("«");
sb.append("</a>");
sb.append(" <a href=\"");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//往前一行
int previous;
if (pages.getCpage() <= 1) {
previous = 1;
}
else {
previous = pages.getCpage() - 1;
}
sb.append(previous);
//sb.append("&total=");
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
sb.append("\">");
//sb.append("<");
sb.append("‹");
sb.append("</a>");
}
/**
* middle butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
for (int i = 0; i < cnum; i++) {
sb.append(" <a href=\"");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
sb.append("\">");
if (pages.getCpage() == (i + 1) + ( (cpagesep - 1) * pagesep)) {
sb.append("<strong>");
sb.append( (i + 1) + ( (cpagesep - 1) * pagesep));
sb.append("</strong>");
}
else {
sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
}
sb.append("</a>");
}
/**
* next butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
if (cpagesep < allpagesep) {
sb.append(" <a href=\"");
//sb.append(pages.getFileName());
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//sb.append("page=");
int next;
if (pages.getCpage() >= pages.getAllPage()) {
next = (int) pages.getAllPage();
}
else {
next = pages.getCpage() + 1;
}
sb.append(next);
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
//sb.append("&t=");
sb.append(pages.getTotalNum());
sb.append("\">");
//sb.append(">");
sb.append("›");
sb.append("</a> ");
sb.append(" <a href=\"");
//sb.append(pages.getFileName());
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//sb.append("page=");
sb.append(pages.getAllPage());
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
//sb.append("&t=");
sb.append(pages.getTotalNum());
sb.append("\">");
//sb.append(">|");
sb.append("»");
sb.append("</a>");
}
sb.append("</span>");
}
else {
/**
* previous butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
sb.append("<span");
if (StringUtils.isNotBlank(this.styleClass)) {
sb.append(" class=\"");
sb.append(this.styleClass);
sb.append("\"");
}
sb.append(">");
if (cpagesep > 1) {
sb.append("<a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=1&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
sb.append("');\">");
//sb.append("|<");
sb.append("«");
sb.append("</a>");
//sb.append(" <a href=\"");
sb.append(" <a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//往前一行
int previous;
if (pages.getCpage() <= 1) {
previous = 1;
}
else {
previous = pages.getCpage() - 1;
}
sb.append(previous);
//sb.append("&total=");
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
//sb.append("\">");
sb.append("');\">");
//sb.append("<");
sb.append("‹");
sb.append("</a>");
}
/**
* middle butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
for (int i = 0; i < cnum; i++) {
//sb.append(" <a href=\"");
sb.append(" <a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
sb.append(pages.getTotalNum());
//sb.append("\">");
sb.append("');\">");
if (pages.getCpage() == (i + 1) + ( (cpagesep - 1) * pagesep)) {
sb.append("<strong>");
sb.append( (i + 1) + ( (cpagesep - 1) * pagesep));
sb.append("</strong>");
}
else {
sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
}
sb.append("</a>");
}
/**
* next butten ,append to
* <a href='xxx.lt?page=x&t=x'><img></a>
*/
if (cpagesep < allpagesep) {
//sb.append(" <a href=\"");
//sb.append(pages.getFileName());
sb.append(" <a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//sb.append("page=");
int next;
if (pages.getCpage() >= pages.getAllPage()) {
next = (int) pages.getAllPage();
}
else {
next = pages.getCpage() + 1;
}
sb.append(next);
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
//sb.append("&t=");
sb.append(pages.getTotalNum());
//sb.append("\">");
sb.append("');\">");
//sb.append(">");
sb.append("›");
sb.append("</a> ");
//sb.append("<a href=\"");
//sb.append(pages.getFileName());
sb.append(" <a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(fileName);
sb.append(this.getArgPage());
sb.append("=");
//sb.append("page=");
sb.append(pages.getAllPage());
sb.append("&");
sb.append(this.argTotal);
sb.append("=");
//sb.append("&t=");
sb.append(pages.getTotalNum());
//sb.append("\">");
sb.append("');\">");
//sb.append(">|");
sb.append("»");
sb.append("</a>");
}
sb.append("</span>");
}
TagUtils.getInstance().write(pageContext, sb.toString());
return (SKIP_BODY);
}
public String getName() {
return name;
}
public String getStyleClass() {
return styleClass;
}
public String getProperty() {
return property;
}
public String getScope() {
return scope;
}
public String getArgPage() {
return argPage;
}
public String getArgTotal() {
return argTotal;
}
public int getPageSep() {
return pageSep;
}
public String getJavaScript() {
return javaScript;
}
public void setName(String name) {
this.name = name;
}
public void setStyleClass(String styleClass) {
this.styleClass = styleClass;
}
public void setProperty(String property) {
this.property = property;
}
public void setScope(String scope) {
this.scope = scope;
}
public void setArgPage(String argPage) {
this.argPage = argPage;
}
public void setArgTotal(String argTotal) {
this.argTotal = argTotal;
}
public void setPageSep(int pageSep) {
this.pageSep = pageSep;
}
public void setJavaScript(String javaScript) {
this.javaScript = javaScript;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -