1、准备tld文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
<description><![CDATA["To make it easier to access dynamic data;
the Apache Struts framework includes a library of custom tags.
The tags interact with the framework's validation and internationalization features;
to ensure that input is correct and output is localized.
The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description>
<display-name>LetGo</display-name>
<tlib-version>1.0</tlib-version>
<short-name>voice</short-name>
<uri>/page-tags</uri>
<tag>
<description><![CDATA[Render a paging link tag]]></description>
<name>paging</name>
<tag-class>com.page.PagingAction</tag-class>
<body-content>empty</body-content>
<attribute>
<description><![CDATA[current page index]]></description>
<name>currPage</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description><![CDATA[The total page]]></description>
<name>totalPage</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description><![CDATA[The page max]]></description>
<name>pageMax</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description><![CDATA[total link number for show]]></description>
<name>count</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>

2、写相应的处理类 继承的是 jsp-api.jar 中 SimpleTagSupport,在该类中同时也可以设置各个按钮的js事件....

 package com.page;

 import java.io.IOException;

 import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport; import com.opensymphony.xwork2.ActionContext; public class PagingAction extends SimpleTagSupport{ private String currPage;
private String totalPage;
private String pageMax;
private String count; /**
* 返回
* @return
*/
public String getCurrPage() {
return currPage;
} /**
* 设置
* @param
*/
public void setCurrPage(String currPage) {
this.currPage = currPage;
} /**
* 返回
* @return
*/
public String getTotalPage() {
return totalPage;
} /**
* 设置
* @param
*/
public void setTotalPage(String totalPage) {
this.totalPage = totalPage;
} /**
* 返回
* @return
*/
public String getPageMax() {
return pageMax;
} /**
* 设置
* @param
*/
public void setPageMax(String pageMax) {
this.pageMax = pageMax;
} /**
* 返回
* @return
*/
public String getCount() {
return count;
} /**
* 设置
* @param
*/
public void setCount(String count) {
this.count = count;
} @Override
public void doTag() throws JspException, IOException {
JspWriter write = getJspContext().getOut();
StringBuffer sb = new StringBuffer();
sb.append("<div>")
.append("<button name=\"first\"><<</button>")
.append("<button name=\"pre\"><</button>")
.append("<input type=\"text\" name=\"inputName\" style=\"width: 45px;\"/>")
.append("<label>"+getValueFromStack(this.getCurrPage())+"/共"+getValueFromStack(this.getTotalPage())+"</label>")
.append("<button name=\"next\">></button>")
.append("<button name=\"last\">>></button>")
.append("<div>");
write.write(sb.toString());
} /**
* 在值栈中取出值
* @param str
* @return
*/
private String getValueFromStack(String str){
//取出时不要加%{},直接是存放在值栈中的变量名,此处获取到str是从页面标签传过的值,jia
//加%{}用以区分这个是从值栈中取出,对于不加%{}的属性表示表单提交的变量名称 相当于<input 中的 name属性
//action中的get方法名与之相同,则可获取由标签传递的值
if(str.startsWith("%{")){
str = str.substring(2,str.length()-1);
}
return (String) ActionContext.getContext().getValueStack().findValue(str);
} }

3、在jsp页面引用改标签

OK!!!

struts2的分页标签的更多相关文章

  1. Struts2自定义标签4自定义分页标签

    第一步:webroot/web-inf下的str.tld文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  2. Struts2的OGNL标签详解

    一.Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签. 非UI标签:主要用于数据库访问,逻辑控制等标签. Ajax标签:用于Ajax支持的标签. 对于UI标签,则有可以 ...

  3. Struts2 实现分页

    1.转自:http://www.cnblogs.com/shiyangxt/archive/2008/11/04/1316737.html环境:MyEclipse6.5+Mysql5+struts2. ...

  4. NET Core-TagHelper实现分页标签

    这里将要和大家分享的是学习总结使用TagHelper实现分页标签,之前分享过一篇使用HtmlHelper扩展了一个分页写法地址可以点击这里http://www.cnblogs.com/wangrudo ...

  5. struts2 s:if标签以及 #,%{},%{#}的使用方法

    <s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...

  6. SSH自定义分页标签

    本文参考文章:http://blog.csdn.net/qjyong/article/details/3240303 一.标签处理类: package cn.conris.sys.form; impo ...

  7. struts2 if正确标签示例

    下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...

  8. struts2 s:if标签以及 #,%{},%{#}的使用方法等在资料整理

    <s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...

  9. struts2<s:property />标签

    struts2的<property />标签是输出标签 其value属性是指定输出的内容,如果value属性没有写出来,则默认输出对象栈栈顶的元素. 例如,我们在对象栈中添加一个Perso ...

随机推荐

  1. 洛谷1373小a和uim之大逃离

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  2. Learn How To Attach PL/SQL Library In Oracle Forms

    To attach a PL/SQL library in the Oracle Forms follow the following steps:1. Click on Attached Libra ...

  3. EasyMvc入门教程-基本控件说明(11)菜单导航

    基本上,是个网站就会有菜单导航,目前流行的菜单是不是这样样子的? 似乎是bootstrap引领的风格,我们就用EasyMvc实现吧,上代码: @{ var data = new List<Men ...

  4. PE经典DIY案例1:全解开方案让量产PE也能

    更新说明:因未来的uefi似乎并不能识别并引导ud区,但能识别和引导量产和u+B+隐藏或高端隐藏区,故解决量产PE对u+B+隐藏区的支持,并增加对UEFI启动支持,已经成为PE制作的最主流技术. PE ...

  5. hadoop datanode节点超时时间设置

    datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长. HDFS默认的超时时长为10分 ...

  6. Web终端之使用shellinabox在浏览器进行ssh登录

    shellinbox有一个内建的web server作为基本的web ssh client,允许你通过指定的端口访问linux服务器的ssh shell,只要你的浏览器支持AJAX/JS/CSS就可以 ...

  7. 两段用来启动/重启Linux下Tomcat的Perl脚本

    两段代码,第二段比较好些. 下面是Split输出结果方式的代码: #!/usr/local/bin/perl #Date:2015-07-07 print "Begin to restart ...

  8. 关于使用Axure RP进行原型开发的一些心得体会

    Axure RP(Axure Rapid Prototyping)是一款高速实现.准确表达.带有交互效果且易于上手的原型设计工具. 本人在曾參与某系统需求分析时開始接触Axure RP,初步掌握了一定 ...

  9. 移动端去掉按钮button默认样式

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  10. appium在MAC上环境搭建

    1. 安装.启动Appium bixiaopeng@bixiaopeng ~$ npm install -g appium Password: npm http GET https://registr ...