📄 paginationtagspeedstyleone.java
字号:
/**
*
*/
package org.speedframework.tag;
import java.io.IOException;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import org.apache.log4j.Logger;
import org.speedframework.entity.*;
/**
* <p>
* Title: SpeedFrameworkWork持久层框架
* </p>
*
* <p>
* Description: 基于分页标签类
* </p>
*
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* <p>
* Company: SpeedFrameworkWork
* </p>
*
* @author 李志峰 电话:13824431576
* @version 1.1beta
*/
public class PaginationTagSpeedStyleOne extends TagSupport {
private static final Logger log = Logger.getLogger(PaginationTagSpeedStyleOne.class);
private static final long serialVersionUID = 1673491971683216709L;
private String path = null;
private String name = null;
private String parameter = null;
private String formName = null;
public void setName(String name) {
this.name = name;
}
public void setPath(String path) {
this.path = path;
}
public void setParameter(String parameter) {
this.parameter = parameter;
}
public void setFormName(String formName) {
this.formName = formName;
}
public int doStartTag() throws JspException {
Pagination pagination = null;
if (this.path == null) {
throw new NullPointerException("path is null");
}
if (this.name == null) {
this.name = "pagination";
}
if (this.parameter == null) {
this.parameter = "page";
}
pagination = (Pagination) pageContext.getRequest().getAttribute(name);
if (pagination == null) {
throw new NullPointerException(name + "is null in request");
}
try {
JspWriter out = pageContext.getOut();
out.print("<table border=0 cellpadding=0 width=10% cellspacing=0>");
out.print("<tr align=center valign=top>");
out.print("<td>");
String contextPath = encodeURL(this.path, this.parameter);
if (this.formName != null && this.formName.length() > 0) {
this.getPreviousPageWriter(pagination, out, contextPath);
out.print("</td>");
this.getCurrPageWriter(pagination, out, contextPath);
out.print("</td>");
out.print("<td>");
this.getNextPageWriter(pagination, out, contextPath);
} else {
if (pagination.isHasPreviousPage()) {
out.println("<a class=\"pagination\" href=\"" + contextPath
+ "1\" title=\"First\">First</a>");
out.println("<a class=\"pagination\" href=\"" + contextPath
+ pagination.getPreviousPage()
+ "\" title=\"Previous\">Previous</a>");
} else {
out.println("<span title=\"First\">First</span>");
out.println("<span title=\"Previous\">Previous</span>");
}
if (pagination.isHasNextPage()) {
out.println("<a class=\"pagination\" href=\"" + contextPath
+ pagination.getNextPage()
+ "\" title=\"Next\">Next</a>");
out.println("<a class=\"pagination\" href=\"" + contextPath
+ pagination.getTotalPage()
+ "\" title=\"Last\">Last</a>");
} else {
out.println("<span title=\"Next\">Next</span>");
out.println("<span title=\"Last\">Last</span>");
}
}
out.print("</td>");
out.print("</tr>");
out.print("</table>");
out.println(" ");
out.println("Total " + pagination.getTotalCount() + "");
out.print(" ");
out.println("PageOf " + pagination.getCurrPage() + "");
out.print(" ");
/* 创建CSS内容 */
createCSS(out);
if (this.formName != null && this.formName.length() > 0) {
/* 创建js内容 */
createJS(out, contextPath, pagination.getTotalPage());
} else {
createNoFormJS(out, this.path, pagination.getTotalPage());
}
out.println();
} catch (Exception e) {
throw new JspException(e);
}
return SKIP_BODY;
}
private void getNextPageWriter(Pagination pagination, JspWriter out, String contextPath) throws IOException {
if (pagination.isHasNextPage()) {
out.println("<a class=\"pagination\" href=\"" + contextPath
+ pagination.getNextPage()
+ "\" onclick=\"paginationSubmit('"
+ pagination.getNextPage()
+ "');return false;\" title=\"Next\">" +
"<img src=\"pageimage/speed/currE.gif\" border=\"0\" /><img src=\"pageimage/speed/d.gif\" border=\"0\" /><img src=\"pageimage/speed/next.jpg\" border=\"0\" /></br>" +
"Next</a>");
} else {
out.println("<img src=\"pageimage/speed/currE.gif\" border=\"0\" /><img src=\"pageimage/speed/d.gif\" border=\"0\" /><img src=\"pageimage/speed/next.jpg\" border=\"0\" /></br>Next");
}
}
/**
* 下移式分页
* @param pagination
* @param out
* @param contextPath
* @throws IOException
*/
private void getCurrPageWriter(Pagination pagination, JspWriter out, String contextPath) throws IOException {
int beginPage =pagination.getCurrPage() - 3 < 1 ? 1 : pagination.getCurrPage() - 3;
for (int i = beginPage, j = 0; i <= pagination.getTotalPage() && j < 6; i++, j++) {
out.print("<td>");
if (i != pagination.getCurrPage()) {
out.println("<a href=\"" + contextPath + i +"\" onclick=\"paginationSubmit('"
+ i + "');return false;\">"
+ "<img src=\"pageimage/speed/e.gif\" border=\"0\" /></br>"
+ i
+ "</a>");
} else {
out.println("<img src=\"pageimage/speed/currE.gif\" border=\"0\" /></br>"+i);
}
out.print("</td>");
}
}
private void getPreviousPageWriter(Pagination pagination, JspWriter out, String contextPath) throws IOException {
if (pagination.isHasPreviousPage()) {
out
.println("<a class=\"pagination\" href=\""
+ contextPath
+ pagination.getPreviousPage()
+ "\" onclick=\"paginationSubmit('"
+ pagination.getPreviousPage()
+ "');return false;\" title=\"Previous\">" +
"<img src=\"pageimage/speed/pre.jpg\" border=\"0\" /><img src=\"pageimage/speed/s.gif\" border=\"0\" /><img src=\"pageimage/speed/p.gif\" border=\"0\" /></br>" +
"Previous</a>");
} else {
out.println("<img src=\"pageimage/speed/pre.jpg\" border=\"0\" /><img src=\"pageimage/speed/s.gif\" border=\"0\" /><img src=\"pageimage/speed/p.gif\" border=\"0\" /></br>Previous");
}
}
/*
* (non-Javadoc)
*
* @see javax.servlet.jsp.tagext.TagSupport#doEndTag()
*/
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
/**
* 改变URL使它能访问到action或servlet中去
*
* @param href
* 从页面传来的href
* @param param
* @param queryStr
* 查询内容
* @return
* @author
*/
private final String encodeURL(String href, String param) {
StringBuffer buffer = new StringBuffer(100);
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
buffer.append(request.getContextPath() + "/" + href);
int question = href.indexOf("?");
if (question > 0) {
buffer.append("&" + param + "=");
} else {
buffer.append("?" + param + "=");
}
return buffer.toString();
}
/**
* 创建js内容如果提交form就用js提交
*
* @param out
* @param contextPath
* @throws Exception
* @author
*/
private final void createJS(JspWriter out, String contextPath, int totalPage)
throws Exception {
out.println("<script language=\"javascript\">");
out.println("function paginationSubmit(pageNum_) { ");
out.println(" document." + formName + ".action=\'" + contextPath
+ "\' + pageNum_ + \'\';");
out.println(" document." + formName + ".submit();");
out.println("}");
/* 跳转内容 */
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
String contPath = request.getContextPath() + "/" + this.path;
out.println("function paginationGoto() { ");
out.println(" if(!controlNotNull(document.all." + this.parameter
+ ", '跳转页面')) {");
out.println(" return;");
out.println(" }");
out.println(" ");
out.println(" if(!controlIsInt(document.all." + this.parameter
+ ", '跳转页面')) {");
out.println(" return;");
out.println(" }");
out.println(" ");
out.println(" pageNum_ = document.all." + this.parameter + ".value");
out.println(" if(pageNum_ > 0 && pageNum_ <= " + totalPage + ") {");
out.println(" document." + formName + ".action=\'" + contPath + "&"
+ this.parameter + "=\' + pageNum_ + \'\';");
out.println(" document." + formName + ".submit();");
out.println(" } else { ");
out.println(" alert(\"您输入的页数超出范围\");");
out.println(" }");
out.println("}");
out.println("</script>");
out.println();
}
/**
* 创建没有form时的js
*
* @param out
* @param contextPath
* @thros Exception
* @author
*/
private final void createNoFormJS(JspWriter out, String href, int totalPage)
throws Exception {
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
String contPath = request.getContextPath() + "/" + href;
out.println("<script language=\"javascript\">");
out.println("function paginationGoto() { ");
out.println(" if(!controlNotNull(document.all." + this.parameter
+ ", '跳转页面')) {");
out.println(" return;");
out.println(" }");
out.println(" ");
out.println(" if(!controlIsInt(document.all." + this.parameter
+ ", '跳转页面')) {");
out.println(" return;");
out.println(" }");
out.println(" ");
out.println(" pageNum_ = document.all." + this.parameter + ".value");
out.println(" if(pageNum_ > 0 && pageNum_ <= " + totalPage + ") {");
out.println(" document.location.href=\'" + contPath + "&"
+ this.parameter + "=\' + pageNum_ + \'\';");
out.println(" } else { ");
out.println(" alert(\"您输入的页数超出范围\");");
out.println(" }");
out.println("}");
out.println("</script>");
out.println();
}
/**
* 创建css内容
*
* @param out
* @throws Exception
* @author
*/
private final void createCSS(JspWriter out) throws Exception {
out.println("<style type=\"text/css\">");
out
.println("a.pagination:visited { text-decoration: underline; color: #808080; } "); // #CCCCFF
// #c0c0c0
out
.println("a.pagination:link { text-decoration: underline; color: blue; } ");
out
.println("a.pagination:hover { text-decoration: none; color: #009933; } ");
out
.println("a.pagination:active { text-decoration: none; color: orangered; } ");
out.println("</style>");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -