⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paginationtagspeedstyleone.java

📁 Speedframework--基于类型元数据的羽量级ORM.完全基于Java类型元数据和反射机制同时不需要任何对象关系映射配置文件的轻量级ORM框架,它充分利用了类型本身的信息,使用Metadata
💻 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("&nbsp;");
			out.println("Total " + pagination.getTotalCount() + "");
			out.print("&nbsp;");
			out.println("PageOf " + pagination.getCurrPage() + "");
			out.print("&nbsp;");

			/* 创建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 + -