package com.accp.pager;
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;
/**
* 显示导航条,可利用此改变每页的记录数,上下翻页和跳页
* 使用方法:<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 +
" "
没有合适的资源?快使用搜索试试~ 我知道了~
经调过的Struts+Hibernate分页演示程序
共88个文件
jar:37个
java:12个
class:12个
需积分: 3 121 下载量 141 浏览量
2008-03-08
16:08:52
上传
评论 1
收藏 6.54MB RAR 举报
温馨提示
经调过的Struts+Hibernate分页演示程序<br><br>特点:<br>一、使用MYSQL数据库,我添加的数据库脚本<br>二、完全采用MVC结构设计理念,页面不含任何JSP脚本
资源推荐
资源详情
资源评论
收起资源包目录
StrutsHibernatePagination.rar (88个子文件)
.project 2KB
build.sql 1KB
.mymetadata 348B
WebRoot
WEB-INF
struts-tiles.tld 8KB
.struts-config.mex 2KB
web.xml 942B
struts-config.xml 1KB
struts-bean.tld 9KB
struts-nested.tld 63KB
struts-html.tld 65KB
struts-template.tld 2KB
struts-logic.tld 14KB
validator-rules.xml 41KB
page.tld 1KB
lib
commons-logging.jar 31KB
commons-digester.jar 107KB
commons-fileupload.jar 22KB
commons-beanutils.jar 116KB
commons-lang.jar 62KB
struts.jar 486KB
commons-validator.jar 46KB
struts-legacy.jar 10KB
jakarta-oro.jar 64KB
commons-collections.jar 161KB
classes
com
accp
bean
UserInfoBean.class 4KB
Test.class 1KB
HibernateUtil.class 3KB
struts
action
UserInfoPreAction.class 2KB
UserInfoListAction.class 2KB
UserInfoAction.class 1KB
form
UserInfoForm.class 2KB
Userinfo.hbm.xml 1KB
ApplicationResources.properties 100B
pager
ParamUtil.class 1KB
PageTEI.class 792B
PagerTag.class 7KB
NavigatorTag.class 6KB
StringUtil.class 1KB
hibernate.cfg.xml 863B
META-INF
MANIFEST.MF 39B
userInfo.jsp 1KB
userInfoList.jsp 2KB
.myeclipse
src
com
accp
bean
UserInfoBean.java 4KB
HibernateUtil.java 3KB
Test.java 715B
struts
action
UserInfoPreAction.java 2KB
UserInfoAction.java 2KB
UserInfoListAction.java 1KB
form
UserInfoForm.java 3KB
Userinfo.hbm.xml 1KB
ApplicationResources.properties 100B
pager
PageTEI.java 649B
PagerTag.java 9KB
ParamUtil.java 1KB
StringUtil.java 1KB
NavigatorTag.java 12KB
hibernate.cfg.xml 863B
hibernate.reveng.xml 289B
.mystrutsdata 255B
.classpath 3KB
.myhibernatedata 509B
lib
commons-logging.jar 31KB
cglib-2.1.jar 275KB
log4j-1.2.9.jar 344KB
commons-digester.jar 107KB
commons-fileupload.jar 22KB
antlr-2.7.5H3.jar 423KB
dom4j-1.6.jar 306KB
commons-beanutils.jar 116KB
jta.jar 9KB
hibernate3.jar 1.6MB
commons-lang.jar 62KB
commons-logging-1.0.4.jar 37KB
xml-apis.jar 121KB
jdbc2_0-stdext.jar 7KB
struts.jar 486KB
commons-validator.jar 46KB
mysql-connector-java-5.0.3-bin.jar 482KB
commons-collections-2.1.1.jar 171KB
jaas.jar 102KB
ehcache-1.1.jar 46KB
struts-legacy.jar 10KB
asm.jar 26KB
jaxen-1.1-beta-4.jar 233KB
xerces-2.6.2.jar 987KB
jakarta-oro.jar 64KB
commons-collections.jar 161KB
asm-attrs.jar 16KB
共 88 条
- 1
资源评论
冷月宫主
- 粉丝: 1185
- 资源: 364
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功