zoukankan      html  css  js  c++  java
  • 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=" 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 }
    View Code

    3、在jsp页面引用改标签

    OK!!!

  • 相关阅读:
    友盟自定义分享-生成带图片的二维码,自定义分享布局
    Android 第三方应用接入微信平台研究情况分享
    友盟分享——Android App接入微信开放平台注意事项
    Unable to execute dex: Multiple dex files define 解决方法
    ListView 中嵌套 GridView
    Android 复制 粘贴 剪贴板的使用 ClipboardManager
    自定义组件-绘制时钟
    [置顶] Android 高级开发 源码 UI 缓存 网络
    222222222222
    1111111111111111111111
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4110107.html
Copyright © 2011-2022 走看看