struts2的分页标签

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事件....

  1 package com.page;
  2
  3 import java.io.IOException;
  4
  5 import javax.servlet.jsp.JspException;
  6 import javax.servlet.jsp.JspWriter;
  7 import javax.servlet.jsp.tagext.SimpleTagSupport;
  8
  9 import com.opensymphony.xwork2.ActionContext;
 10
 11 public class PagingAction extends SimpleTagSupport{
 12
 13     private String currPage;
 14     private String totalPage;
 15     private String pageMax;
 16     private String count;
 17
 18     /**
 19      * 返回
 20      * @return
 21      */
 22     public String getCurrPage() {
 23         return currPage;
 24     }
 25
 26     /**
 27      * 设置
 28      * @param
 29      */
 30     public void setCurrPage(String currPage) {
 31         this.currPage = currPage;
 32     }
 33
 34     /**
 35      * 返回
 36      * @return
 37      */
 38     public String getTotalPage() {
 39         return totalPage;
 40     }
 41
 42     /**
 43      * 设置
 44      * @param
 45      */
 46     public void setTotalPage(String totalPage) {
 47         this.totalPage = totalPage;
 48     }
 49
 50     /**
 51      * 返回
 52      * @return
 53      */
 54     public String getPageMax() {
 55         return pageMax;
 56     }
 57
 58     /**
 59      * 设置
 60      * @param
 61      */
 62     public void setPageMax(String pageMax) {
 63         this.pageMax = pageMax;
 64     }
 65
 66     /**
 67      * 返回
 68      * @return
 69      */
 70     public String getCount() {
 71         return count;
 72     }
 73
 74     /**
 75      * 设置
 76      * @param
 77      */
 78     public void setCount(String count) {
 79         this.count = count;
 80     }
 81
 82     @Override
 83     public void doTag() throws JspException, IOException {
 84         JspWriter write = getJspContext().getOut();
 85         StringBuffer sb = new StringBuffer();
 86         sb.append("<div>")
 87         .append("<button name=\"first\"><<</button>")
 88         .append("<button name=\"pre\"><</button>")
 89         .append("<input type=\"text\" name=\"inputName\" style=\"width: 45px;\"/>")
 90         .append("<label>"+getValueFromStack(this.getCurrPage())+"/共"+getValueFromStack(this.getTotalPage())+"</label>")
 91         .append("<button name=\"next\">></button>")
 92         .append("<button name=\"last\">>></button>")
 93         .append("<div>");
 94         write.write(sb.toString());
 95     }
 96
 97     /**
 98      * 在值栈中取出值
 99      * @param str
100      * @return
101      */
102     private String getValueFromStack(String str){
103         //取出时不要加%{},直接是存放在值栈中的变量名,此处获取到str是从页面标签传过的值,jia
104         //加%{}用以区分这个是从值栈中取出,对于不加%{}的属性表示表单提交的变量名称 相当于<input 中的 name属性
105         //action中的get方法名与之相同,则可获取由标签传递的值
106         if(str.startsWith("%{")){
107             str = str.substring(2,str.length()-1);
108         }
109         return (String) ActionContext.getContext().getValueStack().findValue(str);
110     }
111
112 }

3、在jsp页面引用改标签

OK!!!

时间: 2024-10-26 02:01:16

struts2的分页标签的相关文章

Struts2的OGNL标签详解

一.Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签. 非UI标签:主要用于数据库访问,逻辑控制等标签. Ajax标签:用于Ajax支持的标签. 对于UI标签,则有可以分为两类: 表当标签:表单标签主要用与生成HTML页面的from元素,以及普通表单元素的标签. 非表单标签:非表单标签主要用于生成页面的树.Tab页等. 流程控制标签:主要包含用于实现分页.循环等流程的标签. 数据访问标签:主要包含用于输出ValueStack中的值,完成国际化等功能的标签. Str

Struts2 实现分页

1.转自:http://www.cnblogs.com/shiyangxt/archive/2008/11/04/1316737.html环境:MyEclipse6.5+Mysql5+struts2.0.11 实现分页用到三个类,分别为NewsDao.java(接口),NewsDaoImpl.java(实现),ListAction.java(调用方法). 当然还有配好连接池的Mysql连接辅助类.在此不做过多介绍. NewsDao.java package com.sy.dao; import

Struts2中datetimepicker标签

在以前的struts2版本中s:datetimepicker只需要在head标签处设置<s:head theme="ajax"/>,就可以直接使用s:datetimepicker的标签了.而在2.1.6版本中不能直接这样使用了,将datetimepicker移除了.原因是此标签调用了dojo的datetimepicker的库.所以现在使用的时候首先要导入一个库:struts2-dojo-plugin-2.1.6.jar.然后还要设置dojo的taglib<%@ tag

jsp自定义分页标签

1.web工程的整体结构 2.Eclipse中tld文件的构建方法3.编码 package mytags; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class PagerTag extends TagSupport { /** * */ private static final long serialV

JSP自定义分页标签TAG

首先我们需要在WEB-INF/tld/目录下创建page.tld文件 <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</short-name> <u

Struts2之数据标签(二)

Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817 1.action标签:使用此标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace.如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来. (1).此标签的属性: - id:可选属性,该属性将会作为该

Struts2中UI标签之表单标签介绍

1.在Struts2中UI标签的表单标签分为两种:form标签本身和单个表单标签. 2.Struts2表单标签包括:form.textfield.password.radio.checkbox.checkboxlist.select.doubleselect.combobox.optiontransferselect.optgroup.updownselect.textarea.hidden.file.label.submit.token.head.datepicker.reset.richte

struts2 自定义tag标签

在项目中可能有很多相同的jsp页面表示功能,这时可以使用自定义的tag进行定义,渐少重复的工作量便于日后维护! 下面就基于struts2进行自定义标签的定义与实现: 首先:自定义类MyTag继承struts2的Component package cookielogin; import java.io.IOException; import java.io.Writer; import org.apache.struts2.components.Component; import com.open

java超强分页标签演示

最近在做一个项目,用到了一个分页,于是动手写了个分页标签,先将代码贴出来,供大家交流,写的不好,请见谅!. 以下是java标签类,继承自SimpleTagSupport [java] view plaincopyprint? package com.lynn.oa.tag; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.jsp.JspExcep