📄 paginationtagstylespeed.java
字号:
/**
*
*/
package org.speedframework.tag;
//~--- non-JDK imports --------------------------------------------------------
import org.speedframework.entity.Pagination;
//~--- JDK imports ------------------------------------------------------------
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
/**
* <p/>
* Title: SpeedFrameworkWork??锟斤拷???
* </p>
* <p/>
* <p/>
* Description: ???????????
* </p>
* <p/>
* <p/>
* Copyright: Copyright (c) 2006
* </p>
* <p/>
* <p/>
* Company: SpeedFrameworkWork
* </p>
*
* @author ????? ?锟斤拷??13824431576
* @version 1.1beta
*/
public class PaginationTagStyleSpeed extends TagSupport
{
/** 属性描述信息 */
private static final long serialVersionUID = 1673491971683216709L;
/** 属性描述信息 */
private String formName = null;
/** 属性描述信息 */
private String name = null;
/** 属性描述信息 */
private String parameter = null;
/** 属性描述信息 */
private String path = null;
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @param path
*/
public void setPath(String path) {
this.path = path;
}
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @param parameter
*/
public void setParameter(String parameter) {
this.parameter = parameter;
}
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @param formName
*/
public void setFormName(String formName) {
this.formName = formName;
}
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @return
*
* @throws JspException
*/
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)) {
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");
}
out.print("</td>");
for (int i = 1; i <= pagination.getTotalPage(); i++) {
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>");
}
out.print("</td>");
out.print("<td>");
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");
}
} 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;
}
/*
* (non-Javadoc)
*
* @see javax.servlet.jsp.tagext.TagSupport#doEndTag()
*/
/**
* 方法描述信息,
* 描述方法是做什么的,
* 如何调用,最好给出调用代码示例。
*
* @return
*
* @throws JspException
*/
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
/**
* ???URL?????????action??servlet???
*
* @param href ????锟???href
* @param param
* @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
* @param totalPage
* @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
* @thros Exception
* @author
* @param href
* @param totalPage
*
* @throws Exception
*/
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 + -