📄 page.java
字号:
package com.laoer.bbscs.web.taglib;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.io.Writer;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.components.Component;
import com.laoer.bbscs.service.web.Pages;
import com.opensymphony.xwork2.util.ValueStack;
public class Page extends Component {
/**
* Logger for this class
*/
private static final Log logger = LogFactory.getLog(Page.class);
public Page(ValueStack arg0) {
super(arg0);
}
protected String styleClass = "";
protected String argPage = "page";
protected String argTotal = "total";
protected int pageSep = 10;
protected String javaScript = "";
private String value;
public String getArgPage() {
return argPage;
}
public void setArgPage(String argPage) {
this.argPage = argPage;
}
public String getArgTotal() {
return argTotal;
}
public void setArgTotal(String argTotal) {
this.argTotal = argTotal;
}
public String getJavaScript() {
return javaScript;
}
public void setJavaScript(String javaScript) {
this.javaScript = javaScript;
}
public int getPageSep() {
return pageSep;
}
public void setPageSep(int pageSep) {
this.pageSep = pageSep;
}
public String getStyleClass() {
return styleClass;
}
public void setStyleClass(String styleClass) {
this.styleClass = styleClass;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public boolean start(Writer writer) {
boolean result = super.start(writer);
if (value == null) {
value = "top";
} else if (altSyntax()) {
if (value.startsWith("%{") && value.endsWith("}")) {
value = value.substring(2, value.length() - 1);
}
}
Pages pages = (Pages) this.getStack().findValue(value);
// 一行显示页数
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);
String fileName = pages.getFileName();
StringBuffer sb = new StringBuffer();
if (pages.isUseUrlRewrite()) { // 使用URL Rewrite
if (StringUtils.isBlank(this.javaScript)) {
sb.append("<span");
if (StringUtils.isNotBlank(this.styleClass)) {
sb.append(" class=\"");
sb.append(this.styleClass);
sb.append("\"");
}
sb.append(">");
if (cpagesep > 1) {
String tmpFileName = fileName;
tmpFileName = this.replacePage(tmpFileName, 1);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append("<a href=\"");
sb.append(tmpFileName);
sb.append("\">");
// sb.append("|<");
sb.append("«");
sb.append("</a>");
tmpFileName = fileName;
// 往前一行
int previous;
if (pages.getCpage() <= 1) {
previous = 1;
} else {
previous = pages.getCpage() - 1;
}
tmpFileName = this.replacePage(tmpFileName, previous);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append(" <a href=\"");
sb.append(tmpFileName);
sb.append("\">");
// sb.append("<");
sb.append("‹");
sb.append("</a>");
}
for (int i = 0; i < cnum; i++) {
String tmpFileName = fileName;
tmpFileName = this.replacePage(tmpFileName, ((i + 1) + ((cpagesep - 1) * pagesep)));
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append(" <a href=\"");
sb.append(tmpFileName);
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>");
}
if (cpagesep < allpagesep) {
String tmpFileName = fileName;
int next;
if (pages.getCpage() >= pages.getAllPage()) {
next = (int) pages.getAllPage();
} else {
next = pages.getCpage() + 1;
}
tmpFileName = this.replacePage(tmpFileName, next);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append(" <a href=\"");
sb.append(tmpFileName);
sb.append("\">");
sb.append("›");
sb.append("</a> ");
tmpFileName = fileName;
tmpFileName = this.replacePage(tmpFileName, pages.getAllPage());
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append(" <a href=\"");
sb.append(tmpFileName);
sb.append("\">");
// sb.append(">|");
sb.append("»");
sb.append("</a>");
}
sb.append("</span>");
} else {
sb.append("<span");
if (StringUtils.isNotBlank(this.styleClass)) {
sb.append(" class=\"");
sb.append(this.styleClass);
sb.append("\"");
}
sb.append(">");
if (cpagesep > 1) {
String tmpFileName = fileName;
tmpFileName = this.replacePage(tmpFileName, 1);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
sb.append("<a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(tmpFileName);
sb.append("');\">");
// sb.append("\">");
// sb.append("|<");
sb.append("«");
sb.append("</a>");
tmpFileName = fileName;
// 往前一行
int previous;
if (pages.getCpage() <= 1) {
previous = 1;
} else {
previous = pages.getCpage() - 1;
}
tmpFileName = this.replacePage(tmpFileName, previous);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
// sb.append(" <a href=\"");
// sb.append(tmpFileName);
// sb.append("\">");
// sb.append("<");
sb.append("<a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(tmpFileName);
sb.append("');\">");
sb.append("‹");
sb.append("</a>");
}
for (int i = 0; i < cnum; i++) {
String tmpFileName = fileName;
tmpFileName = this.replacePage(tmpFileName, ((i + 1) + ((cpagesep - 1) * pagesep)));
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
// sb.append(" <a href=\"");
// sb.append(tmpFileName);
// sb.append("\">");
sb.append("<a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(tmpFileName);
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>");
}
if (cpagesep < allpagesep) {
String tmpFileName = fileName;
int next;
if (pages.getCpage() >= pages.getAllPage()) {
next = (int) pages.getAllPage();
} else {
next = pages.getCpage() + 1;
}
tmpFileName = this.replacePage(tmpFileName, next);
tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
// sb.append(" <a href=\"");
// sb.append(tmpFileName);
// sb.append("\">");
sb.append("<a href=\"javascript:;\" onclick=\"");
sb.append(this.javaScript);
sb.append("('");
sb.append(tmpFileName);
sb.append("');\">");
sb.append("›");
sb.append("</a> ");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -