📄 navigatortag.java
字号:
package net.xdevelop.taglib.page;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.net.URLEncoder;
import java.io.IOException;
import net.xdevelop.util.*;
/**
* 显示导航条,可利用此改变每页的记录数,上下翻页和跳页
* 使用方法:<page:navigator type='BUTTON'/>
* @author Starboy
* @version 2.0
*/
public class NavigatorTag extends TagSupport {
/**导航条的类型(BUTTON/TEXT)(按钮型/文字链接型)*/
private String type = "BUTTON"; //选择导航条类型默认"BUTTON"(BUTTON/TEXT)
public void setType(String newType) {
type = newType;
}
public int doStartTag() throws JspException {
try {
String bar = getNavigatorBar(type);
pageContext.getOut().write(bar);
return SKIP_BODY;
}
catch (IOException ioe) {
throw new JspException(ioe.getMessage());
}
}
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
/**
* 根据指定类型获得导航条预先设计的导航条
* @param type 导航条类型(BUTTON/TEXT)
* @return 返回导航条的HTML代码,若指定类型不存在,返回""
*/
private String getNavigatorBar(String type) {
String bar = "";
String pageNo = ((Integer) pageContext.getAttribute("pageNo")).toString();
String pages = ((Integer) pageContext.getAttribute("pages")).toString();
String total = ((Integer) pageContext.getAttribute("total")).toString();
String pageSize = ((Integer) pageContext.getAttribute("pageSize")).toString();
String nextDisabled = "";
String prevDisabled = "";
if (Integer.parseInt(pageNo) >= Integer.parseInt(pages))
nextDisabled = "disabled";
if (Integer.parseInt(pageNo) <= 1)
prevDisabled = "disabled";
//---------------------按钮型的导航条-----------------------//
if (type.equalsIgnoreCase("BUTTON")) {
String pageSizeInput = "<input type='text' size='2' value='" + pageSize + "' "
+ "onChange=\"javascript:this.form.choice.value='current';"
+ "this.form.pageSize.value=this.value;this.form.submit();\">";
String firstButton = "<input type='button' value='首 页' " + prevDisabled + " "
+
"onClick=\"javascript:this.form.choice.value='first';this.form.submit();\">";
String prevButton = "<input type='button' value='上一页' " + prevDisabled + " "
+
"onClick=\"javascript:this.form.choice.value='prev';this.form.submit();\">";
String nextButton = "<input type='button' value='下一页' " + nextDisabled + " "
+
"onClick=\"javascript:this.form.choice.value='next';this.form.submit();\">";
String lastButton = "<input type='button' value='最后一页' " + nextDisabled + " "
+
"onClick=\"javascript:this.form.choice.value='last';this.form.submit();\">";
String pageNoInput = "<input type='text' size='3' value='" + pageNo + "' "
+ "onChange=\"javascript:this.form.pageNo.value=this.value\">";
bar = "每页pageSize条记录 | \n"
+ "共pages页/total条记录 | \n"
+ "first \n prev \n next \n last \n | 第pageNo页\n"
+
" <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";
bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
bar = StringUtil.replace(bar, "pages", pages);
bar = StringUtil.replace(bar, "total", total);
bar = StringUtil.replace(bar, "first", firstButton);
bar = StringUtil.replace(bar, "prev", prevButton);
bar = StringUtil.replace(bar, "next", nextButton);
bar = StringUtil.replace(bar, "last", lastButton);
bar = StringUtil.replace(bar, "pageNo", pageNoInput);
} /////end of if(button)
//-------------------------文字型----------------------------//
if (type.equalsIgnoreCase("TEXT")) {
String pageSizeInput = "<input type='text' size='2' value='" + pageSize + "' "
+ "onChange=\"document.pager.choice.value='current';"
+ "this.form.pageSize.value=this.value;this.form.submit();\">";
String firstText = "首 页";
String prevText = "上一页";
String nextText = "下一页";
String lastText = "最后一页";
if (prevDisabled.equalsIgnoreCase("")) {
firstText = "<a href='first' "
+
"onClick=\"javascript:document.pager.choice.value='first';document.pager.submit();return false;\">"
+ "首 页"
+ "</a>";
prevText = "<a href='prev' "
+
"onClick=\"javascript:document.pager.choice.value='prev';document.pager.submit();return false;\">"
+ "上一页"
+ "</a>";
}
if (nextDisabled.equalsIgnoreCase("")) {
nextText = "<a href='next' "
+
"onClick=\"javascript:document.pager.choice.value='next';document.pager.submit();return false;\">"
+ "下一页"
+ "</a>";
lastText = "<a href='last' "
+
"onClick=\"javascript:document.pager.choice.value='last';document.pager.submit();return false;\">"
+ "最后一页"
+ "</a>";
}
String pageNoInput = "<input type='text' size='3' size='2' value='" + pageNo + "' "
+ "onChange=\"javascript:this.form.pageNo.value=this.value\">";
bar = "每页pageSize条记录 | \n"
+ "共pages页/total条记录 | \n"
+ "first \n prev \n next \n last \n | 第pageNo页\n"
+
" <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";
bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
bar = StringUtil.replace(bar, "pages", pages);
bar = StringUtil.replace(bar, "total", total);
bar = StringUtil.replace(bar, "first", firstText);
bar = StringUtil.replace(bar, "prev", prevText);
bar = StringUtil.replace(bar, "next", nextText);
bar = StringUtil.replace(bar, "last", lastText);
bar = StringUtil.replace(bar, "pageNo", pageNoInput);
} /////end of if(text)
//---------------------按钮型的导航条-----------------------//
if (type.equalsIgnoreCase("SIMPLEBUTTON")) {
String pageSizeInput = "<input class='navbar' type='text' size='1' value='" + pageSize +
"' "
+ "onChange=\"javascript:this.form.choice.value='current';"
+ "this.form.pageSize.value=this.value;this.form.submit();\">";
String prevButton = "<input class='navbar' type='button' value='上一页' " + prevDisabled +
" "
+
"onClick=\"javascript:this.form.choice.value='prev';this.form.submit();\">";
String nextButton = "<input class='navbar' type='button' value='下一页' " + nextDisabled +
" "
+
"onClick=\"javascript:this.form.choice.value='next';this.form.submit();\">";
String pageNoInput = "<input class='navbar' type='text' size='1' value='" + pageNo +
"' "
+ "onChange=\"javascript:this.form.pageNo.value=this.value\">";
bar = "每页pageSize条记录 | \n"
+ "共pages页/total条记录 | \n"
+ "\n prev \n next \n | 第pageNo页\n"
+ " <input class='navbar' type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";
bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
bar = StringUtil.replace(bar, "pages", pages);
bar = StringUtil.replace(bar, "total", total);
bar = StringUtil.replace(bar, "prev", prevButton);
bar = StringUtil.replace(bar, "next", nextButton);
bar = StringUtil.replace(bar, "pageNo", pageNoInput);
} /////end of if(button)
//-------------------------文字型----------------------------//
if (type.equalsIgnoreCase("SIMPLETEXT")) {
String pageSizeInput = "<input type='text' size='1' value='" + pageSize + "' "
+ "onChange=\"javascript:document.pager.choice.value='current';"
+ "this.form.pageSize.value=this.value;this.form.submit();\">";
String firstText = "首 页";
String prevText = "上一页";
String nextText = "下一页";
String lastText = "最后一页";
if (prevDisabled.equalsIgnoreCase("")) {
firstText = "<a href='first' "
+
"onClick=\"javascript:document.pager.choice.value='first';document.pager.submit();return false;\">"
+ "首 页"
+ "</a>";
prevText = "<a href='prev' "
+
"onClick=\"javascript:document.pager.choice.value='prev';document.pager.submit();return false;\">"
+ "上一页"
+ "</a>";
}
if (nextDisabled.equalsIgnoreCase("")) {
nextText = "<a href='next' "
+
"onClick=\"javascript:document.pager.choice.value='next';document.pager.submit();return false;\">"
+ "下一页"
+ "</a>";
lastText = "<a href='last' "
+
"onClick=\"javascript:document.pager.choice.value='last';document.pager.submit();return false;\">"
+ "最后一页"
+ "</a>";
}
String pageNoInput = "<input type='text' size='1' value='" + pageNo + "' "
+ "onChange=\"javascript:this.form.pageNo.value=this.value\">";
bar = "每页pageSize条记录 | \n"
+ "共pages页/total条记录 | \n"
+ "prev \n next \n | 第pageNo页\n"
+
" <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";
bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
bar = StringUtil.replace(bar, "pages", pages);
bar = StringUtil.replace(bar, "total", total);
bar = StringUtil.replace(bar, "prev", prevText);
bar = StringUtil.replace(bar, "next", nextText);
bar = StringUtil.replace(bar, "pageNo", pageNoInput);
} /////end of if(text)
return bar;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -