`
sky_yangwang
  • 浏览: 52654 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ssh+公共分页

阅读更多

 

1jsp页面:

一般的数据绑定,<s:iterator

加入分页数据,

<s:div><s:property value="pageParam"/>  <s:property value="pageStr"  escape="false"/></s:div>

 

2Action

public String list() {

    

DaoDemoUtils.buildJndi();

ApplicationContext ac = new ClassPathXmlApplicationContext("/dao/datasource-context-dao.xml");

NewsDao newsDao = (NewsDao) ac.getBean("NewsDao");

PublicMethodDao publicMethodDao = (PublicMethodDao) ac.getBean("PublicMethodDao");

int pageSizeDefault = 2;//从xml中获取,页面可以设置大小,全局数字。

List list2 = newsDao.getAll();

int recordcount =  list2.size();//总记录数

int pageIndex = 1;//默认第1页;

HttpServletRequest request=ServletActionContext.getRequest();

if(request.getParameter("pageIndex")!=null)

{

pageIndex  = Integer.parseInt(request.getParameter("pageIndex")); //页码参数;

}

String pram ="";  //查询参数;暂空;

int pageCount = recordcount % pageSizeDefault == 0 ? recordcount / pageSizeDefault : recordcount / pageSizeDefault + 1;

if(pageCount>1)

{

pageParam = "总记录:" + recordcount + ",页码:" + pageIndex + "/" + pageCount + ";";

pageStr = getPageStyleService().pageList(pageCount,pageSizeDefault,pageIndex,pram);//公共分页样式;

}

        

String modleName = "News";

List<Object> list =  publicMethodDao.getPageByPram(modleName, pageSizeDefault, pageIndex);//公共查询方法;

ActionContext.getContext().put("newss", list);

return "success";

    }

 

公共分页样式:

public class PageStyleService {

//公共分页样式方法

    public int setViewPageNumber = 5;  //设定前后显示的页码数

    public int viewPageNumber = 0;  //实际显示的页码数

    public int startPage = 0;  //实际显示的页码的开始数

    public int endPage = 0;  //实际显示的页码的结尾数

public String pageList(int pageCount,int pageSizeDefault,int pageIndex,String pram) {

        StringBuffer stringbuil = new StringBuffer();

        

        if (pageCount == 1)   //1页的不显示分页;

        {

            stringbuil.append("");

        }

        else  //大于1页的显示分页

        {

            if (pageCount <= setViewPageNumber)  //总页数小于等于设定向前后各显示页码的---全部显示,

            {

                viewPageNumber = pageCount;

                startPage = 1;

            }

            else  //不能完全显示页码的情况 ---省略显示;

            {

                endPage = pageCount - pageIndex;  //显示的结束页码数

                if (endPage > setViewPageNumber)

                {

                    endPage = setViewPageNumber;

                }

                

                if (pageIndex <= setViewPageNumber)

                {

                    startPage = 1;

                }

                else

                {

                    startPage = pageIndex - setViewPageNumber;   //显示的起始页码数

                }

 

                viewPageNumber = pageIndex + endPage;

            }

            if (pageIndex > 1)   //上一页的显示控制

            {

                stringbuil.append("<a href='?pageIndex=" + (pageIndex - 1) + " '><font style='TEXT-DECORATION:underline;'>上一页</font></a>");

            }

 

            for (int i = startPage; i <= viewPageNumber; i++)  //显示页面数字

            {

                //当前页面和其它页面的修饰不同;

                if (i == pageIndex)

                {

                    stringbuil.append("<font style='TEXT-DECORATION:none;color:Red;font-size:10pt'>" + i + "</font>");

                }

                else

                {

                    stringbuil.append(" <a href='?pageIndex=" + i + " '><font id='fonts' style=' color:Navy;'>[<font style='TEXT-DECORATION:underline;'>" + i + "</font>]</font></a> ");

                }

            }

            endPage = pageCount - pageIndex;

            if (endPage > setViewPageNumber)

            {

                stringbuil.append("......");

            }

            if (pageIndex < pageCount)  //下一页的显示控制

            {

                stringbuil.append("<a href='?pageIndex=" + (pageIndex + 1) + "'><font style='TEXT-DECORATION:underline;'>下一页</font></a>");

            }

        }

        return stringbuil.toString();

 

    }

}

 

公共查询方法:

public class HibernatePublicMethodDao extends HibernateDaoSupport implements PublicMethodDao{

//分页查询方法

@SuppressWarnings("unchecked")

public List<Object> getPageByPram(final String modleName, final int pageSize,final int pageindex) {

        return (List<Object>) getHibernateTemplate().execute(new HibernateCallback() {

            public List<Object> doInHibernate(Session session) throws HibernateException, SQLException {

 

StringBuffer hql = new StringBuffer();

hql.append("from "+modleName+"");

Query query =  session.createQuery(hql.toString()).

                 setFirstResult(pageSize*(pageindex-1)).

                 setMaxResults(pageSize);

return query.list();

            }

        });

    }

}

 

 

 

 

参考:---特色,分页bean的使用;

http://www.cnblogs.com/shiyangxt/archive/2008/12/06/1349099.html 

 

 

 

分享到:
评论

相关推荐

    [SSH+Maven+Bootstrap视频教程]_第 三十三 讲.zip

    在本节SSH+Maven+Bootstrap视频教程的第三十三讲中,我们将深入探讨如何在Java Web项目中集成Bootstrap框架,并利用其强大的分页功能来优化用户界面和提高用户体验。Bootstrap是一个流行的前端开发框架,它提供了...

    ssh集成分页-免费下载

    7. **安全性与效率**:虽然SSH分页提高了可读性,但也要注意其可能带来的安全风险,比如在公共网络中使用可能导致敏感信息暴露。此外,对于性能影响,如果处理大量数据,分页可能会消耗更多时间,因此在效率要求高的...

    分页代码 重分页代码

    在这个场景中,"分页代码 重分页代码" 指的是在SSH框架下实现分页功能的代码,并且强调了代码的复用性,即在一个工程中只需要一个公共的分页类。 分页的目的是为了提高用户体验,避免一次性加载大量数据导致页面...

    ssh框架Demo,学习用

    SSH框架指的是Spring、Struts和Hibernate三个开源框架的组合,它们是Java Web开发中的常用工具。这个"ssh框架Demo"项目显然旨在帮助学习者理解如何整合这三个框架来构建一个功能完善的Web应用程序。 **Spring框架**...

    JSP,用于分页显示的两个工具类

    5. **接口暴露**:为了在JSP页面上使用这些功能,PaginationSupport类通常会提供一些公共方法,如`getTotalPages()`、`getCurrentPageData()`等,供视图层调用。 PageDao.java是数据访问对象(DAO,Data Access ...

    JSP,SSH框架学习日志3,DAO层.pdf

    首先,定义了一个公共接口`ICommonDAO`,它包含了一组通用的方法,如`save()`, `delete()`, `update()`, `findById()`, `findAll()`, `findByQuery()`以及分页查询的`queryForPage()`。这些方法涵盖了基本的数据操作...

    SSH2完整典型配置实例

    - **查**: 查询图书记录,支持分页显示。 #### 实现细节 - 使用Hibernate处理数据库操作。 - Spring负责管理Bean的生命周期和事务控制。 - Struts2负责接收用户请求并转发到对应的Action。 ### 5. 代码组织与项目...

    linux的不错ppt

    GNU项目在1983年启动,其目标是创建一个与UNIX兼容的开源系统,而GNU通用公共许可证(GPL)的发布为开源软件的发展提供了法律保障。 Linux操作系统由Linus Torvalds在1991年首次发布,之后迅速发展。Linux内核版本...

    气泡:气泡茶的TUI组件:dango:

    当值超过元素和公共元素的宽度时,支持unicode,粘贴,就地滚动以及许多自定义选项。进展 一个简单的,可定制的进度表。 支持实体和渐变填充。 空的和填充的符文可以设置为您想要的任何值。 百分比读数是可自定义的...

    数据库课程设计-企业人力资源管理系统.doc

    【程序核心代码及控件描述】详细介绍了系统开发中的关键技术,如SSH(Struts2+Spring+Hibernate)框架的配置,公共模块的设计,如获取时间、自动编号、字符串处理、分页和数据持久化等类的实现。这些模块为系统的...

    北大青鸟学士后第三单元OA办公自动化管理系统

    作者 : 使用SSH框架实现99.99999%的功能 开发工具MyEclipse6.5.1 . 先在src下的jdbc.properties中配置数据库的信息(本项目使用的是Oracle) 再使用com.chen.common包中的CreateTable.java 建表,再往用户表添加一个...

    企业人力资源管理系统.doc

    - **公共模块设计**:包括时间获取、自动编号、字符串处理、分页、数据持久化等基础工具类,提升代码复用性。 - **主要页面设计**:涉及登录、首页、员工管理、信息修改等关键页面的UI设计,确保用户体验。 - **...

    奇虎360 2018校园招聘技术笔试题2.docx

    - 动态规划:解决最优化问题,如背包问题、最长公共子序列等。 2. **编程语言基础**: - C/C++/Java/Python等主流编程语言的基本语法,包括变量、数据类型、流程控制、函数、类和对象等。 - 异常处理、内存管理...

    Linux操作系统基础知识.docx

    Linux是一种免费使用和自由传播的类UNIX计算机操作系统的内核,其源代码可以在遵守GNU通用公共许可协议的条件下进行修改和再次发布。它支持多种硬件平台,并可以运行主要的UNIX工具软件、应用程序和技术网络。 ####...

    Basic_Linux.pdf.zip_linux

    它是由全球各地的开发者共同维护和改进的开源项目,遵循GNU通用公共许可证(GPL)。 2. **Linux发行版**: Linux有许多不同的发行版,如Ubuntu、Fedora、Debian、CentOS等,每个都有自己的特点和目标用户群。选择...

    AWS 命令行用户指南全中文最新版

    - **分页**:对于大量输出的结果,AWS CLI 支持自动分页功能。 #### 使用服务 - **DynamoDB**:提供了操作 Amazon DynamoDB 数据库的方法,例如创建表、查询数据等。 - **Amazon EC2**: - **使用密钥对**:密钥...

    linxu命令大全 Linux命令非常丰富,下面列出了一些常用的Linux命令,并按照功能进行了分类

    11. **more/less**:分页查看文件内容。 - 示例:`more file.txt` 使用 `more` 命令查看。 12. **head/tail**:查看文件头部或尾部的部分内容。 - 示例:`tail -n 10 file.txt` 查看最后10行。 13. **ln**:创建...

Global site tag (gtag.js) - Google Analytics