`
yongtree
  • 浏览: 233622 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Struts2自定义分页标签

阅读更多

Struts2自定义分页标签

Authoryongtree

 

         最近在学习Struts2,并使用Struts2开发系统。在网上看了好多的struts2的分页,虽然都实现了分页的功能,但是感觉不是非常好,需要我们在每次写分页的时候做很多的工作,而我认为分页应该是一个通用的组件,开发人员在开发的过程中不应该在分页上花费太多的精力。所以,一直想封装一个比较通用的分页组件,而设计分页组件的时候,怎样保证动态查询的参数不丢失,成为实现的一个难点。感谢tangshuoshim的分享,让我实现了这样的一个分页组件。

         该组件采用自定struts2标签的方式实现。

         首先建立一个构建分页标签信息的类:Pages.java

/**

 * 构建分页标签体的类

 * @author yongtree

 * @date 2008-11-4 下午02:52:19

 * @version 1.0

 */

public class Pages extends Component {

    private HttpServletRequest request;    

    private String pageNo;   //当前页码

    private String total;   //总页数

    private String styleClass;   //分页的样式

    private String theme;   //分页的主题

    private String url;   //action的路径

    private String urlType; //路径的类型,主要用于URL重写的扩展

      

  //省略getset方法    

      

    public Pages(ValueStack arg0, HttpServletRequest request) {  

        super(arg0);  

        this.request = request;  

    }  

 

    @Override 

    public boolean end(Writer writer,String body) {  

        boolean result = super.start(writer);  

        try {  

         //ValueStack中取出数值  

            Object obj=this.getStack().findValue(pageNo);              

            pageNo = String.valueOf((Integer)obj);    

            obj=this.getStack().findValue(total);  

            total = String.valueOf((Integer)obj);   

 

            StringBuilder str = new StringBuilder();  

            Map cont= this.getStack().getContext();  

            StrutsRequestWrapper req=(StrutsRequestWrapper)cont.get(StrutsStatics.HTTP_REQUEST);  

               if(url==null||"".equals(url)){                 

                 url=(String)req.getAttribute("javax.servlet.forward.request_uri");

               }

               String pageNoStr="?pageNo=";

               if("dir".equals(urlType)){//url的类型为目录类型时,比如http://localhost:8090/yongtree/page/1

                 pageNoStr="";

                 if("1".equals(pageNo)){//第一页时

                    if(url.lastIndexOf("/")!=url.length()-1){

                        if(url.lastIndexOf("1")==url.length()-1){//如果有页码1,则去掉1

                           url=url.substring(0, url.length()-1);

                        }else if(url.lastIndexOf("/")!=url.length()-1){//如果没有页码1,并且最后不是'/'时,加上'/'

                           url=url+"/";

                        }

                    }

                 }else{

                        url=url.substring(0, url.lastIndexOf("/")+1);

                    }

               }

              

            

             //下面这段处理主要是用来处理动态查询的参数,并拼接成url 

            StringBuffer perUrl=new StringBuffer(""); 

            if ( this.getParameters().size() != 0 ) {

分享到:
评论

相关推荐

    基于struts2 自定义标签 分页

    在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与Oracle数据库进行交互。 首先,理解分页的基本概念至关重要。分页是将大量数据分成小块,...

    struts2自定义标签案例详解

    例如,在示例中创建了一个名为`tangs.tld`的文件,其中包含了对自定义分页标签`pages`的定义。TLD文件遵循JSP Tag Library 1.2的DTD规范,使得Web服务器可以解析并理解自定义标签的结构。 ```xml <!-- tangs.tld --...

    Struts 2 自定义标签分页

    8. **页面展示**:最后,在JSP页面中,我们可以使用Struts 2的内置标签结合自定义分页标签来展示数据和分页控件。 总结一下,实现Struts 2 自定义标签分页需要对Struts 2框架有深入理解,包括标签库的创建、Java类...

    Struts2中实现自定义分页标签 --功能扩充

    本篇文章将探讨如何在Struts2中实现自定义分页标签,这是一项非常实用的功能,尤其对于处理大量数据展示时,能显著提高用户体验。我们将深入源码,了解其工作原理,并提供一个自定义分页标签的实现过程。 首先,...

    自定义分页标签源代码

    开发者可能结合Struts1标签库与自定义分页标签一起使用,实现更复杂的业务逻辑。 4. **实例化分页类**: 分页标签可能需要一个分页类的实例,这个类通常会包含当前页数、总页数、每页大小等属性,以及相关的计算...

    Struts2分页-自定义标签-类似百度分页

    通过对`TagDemo`的分析和学习,你可以更好地理解和应用Struts2自定义标签实现分页功能。 总之,Struts2自定义标签提供了一种灵活的方式,使得开发者能够在JSP页面中方便地实现分页效果。通过自定义标签,我们可以将...

    tag struts2的自定义标签实例

    在Struts2框架中,自定义标签是扩展和优化应用功能的重要手段,它允许开发者创建符合业务逻辑且...在实际项目中,根据业务需求,可以创建各种自定义标签,例如分页标签、数据表标签等,进一步优化开发效率和用户体验。

    自定义struts2 分页标签

    本教程将详细介绍如何在Struts2中自定义分页标签。 在传统的网页开发中,分页通常通过服务器端脚本或JavaScript实现,但在Struts2框架中,我们可以创建自定义标签来完成这一任务,使得代码更加模块化和易于维护。...

    自定义分页标签struts2,spring

    本项目"自定义分页标签struts2,spring"是针对Struts2和Spring框架的一个自定义标签实现,旨在简化开发过程,提高代码的可复用性和可维护性。下面我们将详细探讨这个项目中的关键技术点。 首先,Struts2是一个非常...

    struts2自定义标签

    最后,在JSP页面中,我们可以像使用其他Struts2标签一样使用自定义的分页标签,通过属性传递参数。 ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ${currentPage}" total="${totalPages}" url="list....

    struts2做的分页标签

    本文将详细介绍如何在Struts2中实现分页标签,并提供一个简洁易懂的项目示例。 1. **Struts2分页概念**: 分页是将大量数据分割成若干小块,每次只加载一部分数据到页面上,使得用户可以逐页浏览,减轻服务器压力...

    Struts2+jsp自定义分页组件以及源码

    本教程主要探讨如何在Struts2框架下实现一个基于JSP的自定义分页组件,名为"zoo-paging-1.0.jar"。该组件不仅提供了分页功能,还附带了源代码和示例项目,方便开发者理解和应用。 首先,我们来理解分页的基本概念。...

    自定义标签代替Struts标签实现分页

    在Java Web开发中,Struts框架是常用的MVC框架之一...这种方式比直接使用Struts的分页标签更加灵活,但需要更多的编码工作。总的来说,自定义标签是Java Web开发中的一个重要技能,能够提升应用的可维护性和可扩展性。

    java企业项目开发中的自定义分页标签

    本项目以SSH(Struts2、Spring、Hibernate)经典框架为基础,通过自定义分页标签实现了这一功能。下面将详细介绍自定义分页标签在项目中的应用及其核心知识点。 首先,SSH框架是Java Web开发中广泛使用的三大组件。...

    Struts+Hibernate分页标签

    1. **配置Struts2分页标签**: 在Struts2的配置文件(struts.xml)中,需要声明这个自定义标签的namespace、action和result。同时,需要配置拦截器栈,确保分页相关的参数能够正确传递。 2. **编写自定义标签库**: ...

    struts2 完美实现 标签分页

    在JSP页面中,你可以这样使用自定义分页标签: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> <!-- 显示数据 --> ${yourList}" var="item"> <!-- 表格内容 --> <!-- 分页 --> ${yourAction}" ...

Global site tag (gtag.js) - Google Analytics