首页 > 编程语言 >简易java分页标签

简易java分页标签

时间:2023-06-08 20:33:33浏览次数:43  
标签:java 分页 标签 result sb page append String


简易java分页标签



1,标签的实现类NumenTag.java

java 代码



 


1. import java.util.ArrayList;  
2. import java.util.HashMap;  
3. import java.util.List;  
4. import java.util.Map;  
5.   
6. import javax.servlet.jsp.JspException;  
7. import javax.servlet.jsp.JspWriter;  
8. import javax.servlet.jsp.tagext.TagSupport;  
9.   
10. /** *//** 
11.  * 自定义的分页标签 
12.  * 
13.  * @author 马万林 
14.  * 
15.  */  
16. public class NumenTag extends TagSupport {  
17.   
18.     private String url = null;  
19.   
20.     private Result result;  
21.   
22.     private String page = null;  
23.   
24.     private String[] p;  
25.   
26.     private Map kv = new HashMap();  
27.   
28.     private List key = null;  
29.   
30.     /** *//** 
31.      * 分离参数 
32.      * @param params 
33.      */  
34.     public void setParams(String params) {  
35.         key = new ArrayList();  
36.         p = params.split(";");  
37.         for (int i = 0; p.length>1&&i < p.length; i++) {  
38.             kv.put(p[i].split(":")[0], p[i].split(":")[1]);  
39.             key.add(p[i].split(":")[0]);  
40.         }  
41.     }  
42.   
43.     /** *//** 
44.      * 分页的结果 
45.      * @param result 
46.      */  
47.     public void setResult(String result) {  
48.         this.result = (Result) pageContext.getRequest().getAttribute("result");  
49.         this.page = (String) pageContext.getRequest().getAttribute("page");  
50.     }  
51.   
52.     public void setUrl(String url) {  
53.         this.url = url;  
54.     }  
55.   
56.     public int doStartTag() throws JspException {  
57.         StringBuffer sb = null;  
58.         if (result != null && result.getContent() != null  
59.                 && result.getContent().size() > 0) {  
60.             sb = new StringBuffer("分页: ");  
61.             if (result.getPage().getHasPrePage()){  
62.                 sb.append("<a href='").append(url);  
63.                 if (url.indexOf("?") == -1)  
64.                     sb.append("?page=1");  
65.                 else  
66.                     sb.append("&page=1");  
67.                 linkParams(sb);  
68.                 sb.append("'>").append("首页").append("</a>").append(" | ");  
69.                 sb.append("<a href='").append(url);  
70.                 if (url.indexOf("?") == -1)  
71.                     sb.append("?page=").append(  
72.                             result.getPage().getPreviousPage());  
73.                 else  
74.                     sb.append("&page=").append(  
75.                             result.getPage().getPreviousPage());  
76.                 linkParams(sb);  
77.                 sb.append("'>").append("上页").append("</a>").append(" | ");  
78.             }  
79.             if (result.getPage().getHasNextPage()) {  
80.                 sb.append("<a href='").append(url);  
81.                 if (url.indexOf("?") == -1)  
82.                     sb.append("?page=").append(result.getPage().getNextPage());  
83.                 else  
84.                     sb.append("&page=").append(result.getPage().getNextPage());  
85.                 linkParams(sb);  
86.                 sb.append("'>").append("下页").append("</a>").append(" | ");  
87.                 sb.append("<a href='").append(url);  
88.                 if (url.indexOf("?") == -1)  
89.                     sb.append("?page=").append(result.getPage().getTotalPage());  
90.                 else  
91.                     sb.append("&page=").append(result.getPage().getTotalPage());  
92.                 linkParams(sb);  
93.                 sb.append("'>").append("尾页").append("</a>");  
94.             }  
95.             sb.append(" 跳转到:《select name='goToPage' οnchange='javascript:goPage(this.value)'》");  
96.             int s = result.getPage().getTotalCount();  
97.             for (int i = 1; i <= s; i++) {  
98.                 sb.append("<option value=").append(i);  
99.                 if (Integer.parseInt(page) == i)  
100.                     sb.append(" selected");  
101.                 sb.append(">第").append(i).append("页</option>");  
102.             }  
103.             sb.append("</select>");  
104.             sb.append("<script language=javascript>");  
105.             sb.append("function goPage(page){").append("window.location='")  
106.                     .append(url);  
107.             if (url.indexOf("?") == -1)  
108.                 sb.append("?page='+").append("page");  
109.             else  
110.                 sb.append("&page='+").append("page");  
111.             sb.append("+'");  
112.             linkParams(sb);  
113.             sb.append("';");  
114.             sb.append("}");  
115.             sb.append("</script>");  
116.         }  
117.         try {  
118.             if (sb != null) {  
119.                 JspWriter out = pageContext.getOut();  
120.                 out.print(sb);  
121.             }  
122.         } catch (Exception e) {  
123.             throw new JspException(e);  
124.         }  
125.         return EVAL_PAGE;  
126.     }  
127.      
128.     /** *//** 
129.      * 链接参数处理 
130.      * @param sb 
131.      */  
132.     private void linkParams(StringBuffer sb) {  
133.         for (int i = 0; i < key.size(); i++) {  
134.             sb.append("&").append(key.get(i)).append("=").append(  
135.                     kv.get(key.get(i)));  
136.         }  
137.     }  
138.   
139. }


2,标签定义文件numentag.tld


xml 代码



 

1. <?xml  version="1.0"  encoding="utf-8"  ?>  
2.  <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">  
3. <taglib>  
4.     <tlib-version>1.0</tlib-version>  
5.     <jsp-version>1.2</jsp-version>  
6.     <short-name>numen</short-name>  
7.     <!--OutputTag-->  
8.     <tag>  
9.         <name>out</name>  
10.         <tag-class>cn.cityyouth.util.NumenTag</tag-class>  
11.         <body-content>empty</body-content>  
12.         <attribute>  
13.             <name>url</name>  
14.             <required>true</required>  
15.             <rtexprvalue>true</rtexprvalue>  
16.         </attribute>  
17.         <attribute>  
18.             <name>result</name>  
19.             <required>true</required>  
20.             <rtexprvalue>true</rtexprvalue>  
21.         </attribute>  
22.         <attribute>  
23.             <name>params</name>  
24.             <required>false</required>  
25.             <rtexprvalue>true</rtexprvalue>  
26.         </attribute>  
27.     </tag>  
28. </taglib>



3.js


xml 代码



 


1. <%@ page contentType="text/html; charset=utf-8"%>  
2. <%@ include file="/common/taglibs.jsp"%>  
3. <%@ taglib  uri="/WEB-INF/numentag.tld"  prefix="n"%>  
4. <html>  
5. <head>  
6. </head>  
7. <body>  
8. <table>  
9. <tr><td>  
10. <n:out url="test.do" result="result" params="${type}"/>  
11. </td></tr>  
12. </table>  
13. </body>  
14. </html>




标签:java,分页,标签,result,sb,page,append,String
From: https://blog.51cto.com/u_16065168/6443032

相关文章

  • Javascript动态修改select选项
    1、向Select里添加OptionJs代码1.//IEonly,FF不支持Add方法2.functionfnAddItem(text,value){3.varselTarget=document.getElementById("selID");4.selTarget.Add(newOption("text","value"));5.}6.......
  • Javascript: setTimeout()使用及 setInterval()使用
    Javascript:setTimeout()使用及setInterval()使用2006-10-1203:36Evaluatesanexpressionafteraspecifiednumberofmillisecondshaselapsed.(在指定时间过后执行指定的表达式) Syntax:iTimerID=window.setTimeout(vCode,iMilliSeconds[,sLanguage])ParametersvCod......
  • JAVA的springboot+vue学习平台管理系统,校园在线学习管理系统,附源码+数据库+论文+PPT
    1、项目介绍在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具有学习信息管理功能的选择。学习平台采用java技术,基于springboot框架,mysql数据库进行......
  • Java高级技术、Junit单元测试框架入门
          ......
  • Java中的字符串常量池
    Java中字符串对象创建有两种形式,一种为字面量形式,如Stringstr="droid";,另一种就是使用new这种标准的构造对象的方法,如Stringstr=newString("droid");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。然而这两种实现其实存在着一些性能和内存占用的差别。这一切都......
  • 详解Java中的注解
    在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。注解可以做什么Java中的注解通常扮演以下角色编译器指令构建时指令运行时指令其中Java内置了三种编译器指令,本文后面部分会重点介绍Jav......
  • Java中的substring真的会引起内存泄露么?
    在Java中开发,String是我们开发程序可以说必须要使用的类型,String有一个substring方法用来截取字符串,我们想必也常常使用。但是你知道么,关于Java6中的substring是否会引起内存泄露,在国外的论坛和社区有着一些讨论,以至于Java官方已经将其标记成bug,并且为此Java7还重新进行了实现。......
  • 探究Java中的克隆
    本文将尝试介绍一些关于Java中的克隆和一些深入的问题,希望可以帮助大家更好地了解克隆。Java中的赋值在Java中,赋值是很常用的,一个简单的赋值如下1234567//原始类型inta=1;intb=a;//引用类型String[]weekdays=newString[5];String[]gongzuori=weekdays;//......
  • JAVA基础语法
    ​ 1.1程序结构JAVA的基本结构(注意单词一定不要写错哦-一定要区分好大小写哦)首先要了解整体乱框架有哪些东西构成。1、包声明(结构1说明你的文件再那个包下)。2、外部类声明(说明你引入的外部类)3、类声明(结构2首先首字母大写 要与你的文件名一致,其次不要与其他关键词或者官......
  • Java 表单注册常用正则表达式验证工具类
    http://springmvc-springdata.iteye.com/blog/2114555Java表单注册常用正则表达式验证工具类,常用正则表达式大集合。1.电话号码2.邮编3.QQ4.E-mail5.手机号码6.URL7.是否为数字8.是否为中文9.身份证10.域名11.IP。。。。常用验证应有尽有!这的确是您从事web开发......