jsp 自定义分页标签

2016-02-19 18:08 9 1 收藏

下面图老师小编跟大家分享jsp 自定义分页标签,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

  花了一上午简单研究了下自定义标签。就弄了个自定义的分页标签。代码没有怎么仔细优化。先贴上来,:)

  1,标签的实现类NumenTag.java

  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;

  import javax.servlet.jsp.JspException;
  import javax.servlet.jsp.JspWriter;
  import javax.servlet.jsp.tagext.TagSupport;

  /** *//**
   * 自定义的分页标签
   *
   * @author 马万林
   *
   */
  public class NumenTag extends TagSupport {

      private String url = null;

      private Result result;

      private String page = null;

      private String[] p;

      private Map kv = new HashMap();

      private List key = null;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

      /** *//**
       * 分离参数
       * @param params
       */
      public void setParams(String params) {
          key = new ArrayList();
          p = params.split(";");
          for (int i = 0; p.length1&&i p.length; i++) {
              kv.put(p[i].split(":")[0], p[i].split(":")[1]);
              key.add(p[i].split(":")[0]);
          }
      }

      /** *//**
       * 分页的结果
       * @param result
       */
      public void setResult(String result) {
          this.result = (Result) pageContext.getRequest().getAttribute("result");
          this.page = (String) pageContext.getRequest().getAttribute("page");
      }

      public void setUrl(String url) {
          this.url = url;
      }

      public int doStartTag() throws JspException {
          StringBuffer sb = null;
          if (result != null && result.getContent() != null
                  && result.getContent().size() 0) {
              sb = new StringBuffer("分页: ");
              if (result.getPage().getHasPrePage()){
                  sb.append("a href='").append(url);
                  if (url.indexOf("?") == -1)
                      sb.append("?page=1");
                  else
                      sb.append("&page=1");
                  linkParams(sb);
                  sb.append("'").append("首页").append("/a").append(" | ");
                  sb.append("a href='").append(url);
                  if (url.indexOf("?") == -1)
                      sb.append("?page=").append(
                              result.getPage().getPreviousPage());
                  else
                      sb.append("&page=").append(
                              result.getPage().getPreviousPage());
                  linkParams(sb);
                  sb.append("'").append("上页").append("/a").append(" | ");
              }
              if (result.getPage().getHasNextPage()) {
                  sb.append("a href='").append(url);
                  if (url.indexOf("?") == -1)
                      sb.append("?page=").append(result.getPage().getNextPage());
                  else
                      sb.append("&page=").append(result.getPage().getNextPage());
                  linkParams(sb);
                  sb.append("'").append("下页").append("/a").append(" | ");
                  sb.append("a href='").append(url);
                  if (url.indexOf("?") == -1)
                      sb.append("?page=").append(result.getPage().getTotalPage());
                  else
                      sb.append("&page=").append(result.getPage().getTotalPage());
                  linkParams(sb);
                  sb.append("'").append("尾页").append("/a");
              }
              sb
                      .append(" 跳转到:select name='goToPage' onchange='javascript:goPage(this.value)'");
              int s = result.getPage().getTotalCount();
              for (int i = 1; i = s; i++) {
                  sb.append("option value=").append(i);
                  if (Integer.parseInt(page) == i)
                      sb.append(" selected");
                  sb.append("第").append(i).append("页/option");
              }
              sb.append("/select");
              sb.append("script language=javascript");
              sb.append("function goPage(page){").append("window.location='")
                      .append(url);
              if (url.indexOf("?") == -1)
                  sb.append("?page='+").append("page");
              else
                  sb.append("&page='+").append("page");
              sb.append("+'");
              linkParams(sb);
              sb.append("';");
              sb.append("}");
              sb.append("/script");
          }
          try {
              if (sb != null) {
                  JspWriter out = pageContext.getOut();
                  out.print(sb);
              }
          } catch (Exception e) {
              throw new JspException(e);
          }
          return EVAL_PAGE;
      }
     
      /** *//**
       * 链接参数处理
       * @param sb
       */
      private void linkParams(StringBuffer sb) {
          for (int i = 0; i key.size(); i++) {
              sb.append("&").append(key.get(i)).append("=").append(
                      kv.get(key.get(i)));
          }
      }

  }
   

  2,标签定义文件numentag.tld

   

  ?xml  version="1.0"  encoding="utf-8"  ?
   !DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"
  taglib
      tlib-version1.0/tlib-version
      jsp-version1.2/jsp-version
      short-namenumen/short-name
      !--OutputTag--
      tag
          nameout/name
          tag-classcn.cityyouth.util.NumenTag/tag-class
          body-contentempty/body-content
          attribute
              nameurl/name
              requiredtrue/required
              rtexprvaluetrue/rtexprvalue
          /attribute
          attribute
              nameresult/name
              requiredtrue/required
              rtexprvaluetrue/rtexprvalue
          /attribute
          attribute
              nameparams/name
              requiredfalse/required
              rtexprvaluetrue/rtexprvalue
          /attribute
      /tag
  /taglib

   

  3.js

  %@ page contentType="text/html; charset=utf-8"%
  %@ include file="/common/taglibs.jsp"%
  %@ taglib  uri="/WEB-INF/numentag.tld"  prefix="n"%
  html
  head
  /head
  body
  table
  trtd
  n:out url="test.do" result="result" params="${type}"/
  /td/tr
  /table
  /body
  /html
  http://blog.csdn.net/numen_wlm/archive/2007/01/30/1497778.aspx

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1616884.html

延伸阅读
标签: SQLServer
  分页存储过程代码如下: ALTER PROCEDURE [dbo].[Task_SelectPagedAndSorted] (     @ProjectID uniqueidentifier,     @ProjectAreaID uniqueidentifier,     @DepartmentID uniqueidentifier,     @ChiefID uniqueidentifier,     @State nvarchar(32), ...
标签: Web开发
如果能在自己的网页中使用自定义的标签是不是很酷呢,比如用你的网站的域名、用你的网名、用你所爱的人的名字来定义HTML标签并内嵌到网页中,本文就介绍一下这方面的内容。 本文以我的网名的拼音为例来自定义HTML标签。 网名:龙犊,拼音:longdu 首先需要在html标签中进行这样的申明:html xmlns:longdu,xmlns即xml name spac...
标签: Web开发
如何在DataGrid控件中实现自定义分页      在一般情况下,DataGrid控件每次实现翻页操作时,都会将数据源中的数据重新调用一次,当数据中 数据很多时,这样做就会很浪费系统资源和降低程序的执行效率.这时候我们一般通过自定义分页来解 决这个问题.     DataGrid控件的AllowCustomPaging属性用来...
《死侍》自定义键位心得完美自定义键位 方式1: Q作为传送反击键,鼠标左键轻击,右键重击,中键开枪,E键瞄准放大,R重装和互动,ZXC分别对应键盘的轻枪重,其他不变。 鼠标左键轻击,右键重击,中键开枪,这个几乎没什么可说的。 ZXC的定义是不想占用其他键位,再就是方便看刚开始了解连招,也比较形象和对称,有时还可以用来释放动...
PowerPoint借助自定义形状实现填充自定义图片   具体如何操作呢?以powerpoint2007为例,先在PPT页面中画一Tulaoshi.Com个形状,就像下面这个圆: 然后在形状填充里面选择图片或纹理填充: 插入自文件,选择想要的图片就OK了,就会出现下面的效果: 同样的效果还可以应用于艺术字(文本框不行)。如下: ...

经验教程

988

收藏

73
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部