- 浏览: 91874 次
- 性别:
- 来自: 深圳
文章分类
最新评论
分页总是让人头疼 今天就决心做一个分页标签!~
1.首先写一个标签类PagesTag.java,当然要继承SimpleTagSupport类咯~!
2.接下来需要写一个Servlet,来让你的标签在web容器里能够运行~!
3. 下来不用我说,大家都知道要在web.xml中配置这个Servlet,下面就是
4.下来也是最后一步了,就是我们的标签描述文件pages.tld咯,当然用xml文件来描述咯~!
5.现在就大功告成了吗? 我们说不! 最重要的就是写个jsp来测试一下你的分页标签咯~!
名字就叫pagetest.jsp吧~
技巧:大家试着改变style的值,看看页面有什么变化~!
6.好,现在大功告成,打游戏去啦~!
1.首先写一个标签类PagesTag.java,当然要继承SimpleTagSupport类咯~!
package com.xaccp.common.page; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.JspException; public class PagesTag extends SimpleTagSupport { /** * Initialization of action property. * 标签中分页时的链接动作 */ private java.lang.String action; /** * Initialization of pagecount property. * 总页数 */ private int pagecount; /** * Initialization of curpage property. */ private int curpage; /** * Initialization of target property. * 页面链接的目标,默认为_self */ private java.lang.String target="_self"; /** * Initialization of var property. * 分页后的链接参数名称 */ private java.lang.String var; /* * 分页显示的风格 */ private int style=1; public void doTag() throws JspException { JspWriter out=getJspContext().getOut(); try { out.write("<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\"> "); out.write("<tr> "); if (style==1) { if (this.curpage > 1 ){ out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("="); pageString.append(this.curpage - 1); pageString.append("\"><font color=#ff0000>["); pageString.append("上一页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); } if (this.curpage < this.pagecount){ out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("="); pageString.append(this.curpage + 1); pageString.append("\"><font color=#ff0000>["); pageString.append("下一页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); } } else if(style==2) { if (this.curpage > 1) { out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("=1"); //pageString.append(this.curpage - 1); pageString.append("\"><font color=#ff0000>["); pageString.append("首页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); out.write("<td>"); StringBuilder pageString1=new StringBuilder(); pageString1.append("<a href=\""); pageString1.append(action); pageString1.append("?"); pageString1.append(var); pageString1.append("="); pageString1.append(this.curpage - 1); pageString1.append("\"><font color=#ff0000>["); pageString1.append("上一页"); pageString1.append("]</font>"); pageString1.append("</a>"); out.write(pageString1.toString()); out.write("</td> "); } if (this.curpage < this.pagecount) { out.write("<td>"); StringBuilder pageString1=new StringBuilder(); pageString1.append("<a href=\""); pageString1.append(action); pageString1.append("?"); pageString1.append(var); pageString1.append("="); pageString1.append(this.curpage + 1); pageString1.append("\"><font color=#ff0000>["); pageString1.append("下一页"); pageString1.append("]</font>"); pageString1.append("</a>"); out.write(pageString1.toString()); out.write("</td> "); out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("="); pageString.append(pagecount); pageString.append("\"><font color=#ff0000>["); pageString.append("尾页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); } } else { if (this.curpage==1) { out.write("<td>"); out.write("<font color=#bbbbbb>["); out.write("首页"); out.write("]</font>"); out.write("</td> "); out.write("<td>"); out.write("<font color=#bbbbbb>["); out.write("第一页"); out.write("]</font>"); out.write("</td> "); } if (this.curpage > 1 ){ out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("=1"); //pageString.append(this.curpage - 1); pageString.append("\"><font color=#ff0000>["); pageString.append("首页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); out.write("<td>"); StringBuilder pageString2=new StringBuilder(); pageString2.append("<a href=\""); pageString2.append(action); pageString2.append("?"); pageString2.append(var); pageString2.append("="); pageString2.append(this.curpage - 1); pageString2.append("\"><font color=#ff0000>["); pageString2.append("上一页"); pageString2.append("]</font>"); pageString2.append("</a>"); out.write(pageString2.toString()); out.write("</td> "); } if (this.curpage < this.pagecount){ out.write("<td>"); StringBuilder pageString3=new StringBuilder(); pageString3.append("<a href=\""); pageString3.append(action); pageString3.append("?"); pageString3.append(var); pageString3.append("="); pageString3.append(this.curpage + 1); pageString3.append("\"><font color=#ff0000>["); pageString3.append("下一页"); pageString3.append("]</font>"); pageString3.append("</a>"); out.write(pageString3.toString()); out.write("</td> "); out.write("<td>"); StringBuilder pageString=new StringBuilder(); pageString.append("<a href=\""); pageString.append(action); pageString.append("?"); pageString.append(var); pageString.append("="); pageString.append(pagecount); pageString.append("\"><font color=#ff0000>["); pageString.append("尾页"); pageString.append("]</font>"); pageString.append("</a>"); out.write(pageString.toString()); out.write("</td> "); } if (this.curpage == this.pagecount){ out.write("<td>"); out.write("<font color=#bbbbbb>["); out.write("下一页"); out.write("]</font>"); out.write("</td> "); out.write("<td>"); out.write("<font color=#bbbbbb>["); out.write("尾页"); out.write("]</font>"); out.write("</td> "); } } out.write("</tr> "); out.write("</table> "); } catch (java.io.IOException ex) { throw new JspException(ex.getMessage()); } } public void setAction(java.lang.String value) { this.action = value; } public void setPagecount(int value) { this.pagecount = value; } public void setCurpage(int value) { this.curpage = value; } public void setTarget(java.lang.String value) { this.target = value; } public void setVar(java.lang.String value) { this.var = value; } public int getStyle() { return style; } public void setStyle(int style) { this.style = style; } }
2.接下来需要写一个Servlet,来让你的标签在web容器里能够运行~!
package com.xaccp.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; @SuppressWarnings("serial") public class PagesServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String curr=request.getParameter("page"); if (curr==null) { curr="1"; } request.setAttribute("curr",curr); RequestDispatcher rd=request.getRequestDispatcher("pagetest.jsp"); rd.forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public String getServletInfo() { return "Short description"; } }
3. 下来不用我说,大家都知道要在web.xml中配置这个Servlet,下面就是
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>PagesServlet</servlet-name> <servlet-class>com.xaccp.servlet.PagesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>PagesServlet</servlet-name> <url-pattern>/PagesServlet.go</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> </web-app>
4.下来也是最后一步了,就是我们的标签描述文件pages.tld咯,当然用xml文件来描述咯~!
<?xml version="1.0" encoding="UTF-8"?> <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"> <tlib-version>1.0</tlib-version> <short-name>p</short-name> <uri>/WEB-INF/tlds/pages</uri> <!-- A validator verifies that the tags are used correctly at JSP translation time. Validator entries look like this: <validator> <validator-class>com.mycompany.TagLibValidator</validator-class> <init-param> <param-name>parameter</param-name> <param-value>value</param-value> </init-param> </validator> --> <!-- A tag library can register Servlet Context event listeners in case it needs to react to such events. Listener entries look like this: <listener> <listener-class>com.mycompany.TagLibListener</listener-class> </listener> --> <tag> <name>page</name> <tag-class>com.xaccp.common.page.PagesTag</tag-class> <body-content>empty</body-content> <attribute> <name>action</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> </attribute> <attribute> <name>pagecount</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>int</type> </attribute> <attribute> <name>curpage</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>int</type> </attribute> <attribute> <name>target</name> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> </attribute> <attribute> <name>var</name> <rtexprvalue>true</rtexprvalue> <type>java.lang.String</type> </attribute> <attribute> <name>style</name> <rtexprvalue>true</rtexprvalue> <type>int</type> </attribute> </tag> </taglib>
5.现在就大功告成了吗? 我们说不! 最重要的就是写个jsp来测试一下你的分页标签咯~!
名字就叫pagetest.jsp吧~
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib prefix="p" uri="/WEB-INF/tlds/pages.tld" %> <%-- The taglib directive below imports the JSTL library. If you uncomment it, you must also add the JSTL library to the project. The Add Library... action on Libraries node in Projects view can be used to add the JSTL 1.1 library. --%> <%-- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>JSP Page</h1> <p> <%-- This example uses JSTL, uncomment the taglib directive above. To test, display the page like this: index.jsp?sayHello=true&name=Murphy --%> <%-- <c:if test="${param.sayHello}"> <!-- Let's welcome the user ${param.name} --> Hello ${param.name}! </c:if> --%> </p> <p:page action="PagesServlet.go" curpage="${curr}" pagecount="10" style="2" target="_self" var="page"/> <p> </p> </body> </html>
技巧:大家试着改变style的值,看看页面有什么变化~!
6.好,现在大功告成,打游戏去啦~!
发表评论
-
Flash小游戏
2008-09-18 18:45 807我的休闲小游戏 , 看看你能冲过多少关~? -
JSP和Servlet对中文的处理
2008-06-18 21:13 551世界上的各地 ... -
JSP中的乱码解决方案
2008-06-18 20:54 1097首先,确保你的数据库是支持中文的。把数据库的编码方 ... -
Eclipse快捷键
2008-06-18 11:22 793编辑 作用域 功能 ... -
Log4j使用高级
2008-06-17 10:51 1313二 动态配置log4j1 配置外部配置文件来配置的基本步 ... -
应用OSCache提升J2EE系统运行性能
2008-06-17 01:46 889Cache是一种用于提高系 ... -
ssh+mysql乱码解决方案
2008-06-17 01:42 2014(1)对mysql的my.ini配置文件的默认编码(好像是de ...
相关推荐
自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签...
自定义页面分页标签自定义页面分页标签自定义页面分页标签自定义页面分页标签自定义页面分页标签
Struts2自定义分页标签很详细了,新手可以少走弯路,节约时间 资源包括了后台如何操作。
实用的Java分页标签,实用的Java分页标签,实用的Java分页标签
JSP自定义分页标签,mysql数据库,通过导入jar包,使用标签的方式实现分页的功能。
jsp 分页标签。 用于列表自动分页功能
自己写的java分页标签,一次显示10页,当前页数居中 1.2.3.4.5.6.7.8.9.10这样的分页,并且可以设置一页显示的条数,有转到多少页的功能。。。用法在txt文档里写出来了,并且提供了一个jquery包,因为要用到jquery包
自定义分页标签自定义分页标签自定义分页标签自定义分页标签 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
可以直接将JAR包导入后就可以使用的JSP分页标签, 对JSP+SERVLET非常适合,适用于WEB开发,如果有不会用的可以进行询问。
自己写的自定义分页标签,仅供大家学习自用。
jsp 对List的自定义分页标签 很好用的
Office Tab 在 Word、Excel、PowerPoint 加入分页标签功能Office Tab 在 Word、Excel、PowerPoint 加入分页标签功能Office Tab 在 Word、Excel、PowerPoint 加入分页标签功能Office Tab 在 Word、Excel、PowerPoint ...
jpager分页标签(用于jsp页面中数据分页)
在java里面,如何写一个公用的自定义分页标签的实现
Source Insight分页标签插件 sihook使用方法: 1、安装:解压sihook.zip两个dll放到SI目录即可 2、删除:删除SI目录msimg32.dll和sihook.dll即可
-简单的分页标签-简单的分页标签-简单的分页标签-简单的分页标签-简单的分页标签
一个JSP分页的标签组件
此分页标签总共有7个属性,都是必有的属性, 1、pageSize(每页显示的条数); 2、pageNo(当前页对象,用于分页); 3、url(分页跳转的路径,一般为servlet的路径); 4、name(在路径中分页模型存放的作用域的属性名); ...