`
flash7783
  • 浏览: 308650 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

两个字母搞定J2EE通用分页标签(一):

    博客分类:
  • ssh
阅读更多

作者:张纪豪(转载请注明出处)

()摘要与设计思想

海水无量,只取一瓢。大量的数据显示,分段提取是通用的做法,是的,这叫分页技术。

<t:p/>,对于WEB程序员,这种标签格式不会陌生。t:代表自定义标签库;p:分页标签。两个字母(具体的说它是6个字符组成)便可以搞定J2EE平台下所有分页功能。当然可以扩充,例如显示总记录数、总页数、当前页数、每页记录数等信息。

效果截图1

效果截图2

是不是很诱人?那好吧,笔者带大家开始艰难之旅吧。

艰难?呵呵,不用害怕,还是那套机制,只是不同的封装。

本文将从图书、新闻两个实体数据显示来详细介绍这种通用分页技术。

J2EE项目架构设计:

最初微软的Asp脚本语言给动态WEB应用程序开发带来广阔的天地,由此互联网更加精采,不过笔者没有用过Asp来架构过大型项目,因为听说中关村的程序员大部分都有颈椎病预期都是因为陷进了微软的泥潭(逗乐!)。对于那种将所有程序代码和网页显示代码混在一个文件中且脱离不了过程化的编程方法,用在大型项目的构建着实有些可怕。因此J2EE规范中将程序与页面代码分离是一次伟大的革新,并在后来演变成多层结构分层治之的思想,随后微软的C#效仿之,这才初步将程序员慢慢解放。

典型的J2EE项目分为模型-视图-控制三层,即MVC(Model-View-Controller),模型是整个项目中最复杂部分,它除了有核心的数据操纵技术,还需要紧密的业务逻辑,所以模型层又可包含模型领域、数据访问层、服务层;控制层有一个经典的框架是Struts,熟悉它的Action就知道控制层的作用;视图层较容易些,例如最广泛使用的JSP。通过MVC概念就知道原来说用JSP做项目就可看出自己还没有入行,现在已经不是微软的ASP时代,因为在J2EE里根本不用JSP就可以强大的WEB项目(例如页面用velocity模板技术而不用JSP)。这也就意味着J2EE项目里的视图不再局限于网页,它可能是ExcelPDFDesktable Window等等。

本文阐述的分页技术围绕一个含数据领域为五层的小项目来展开描述,控制层和模型层都交给Spring管理,属真正的SSH集成开发模式:

表现层为采用JSP技术;

控制层采用当今最热门Struts(版本为1.x,不是Struts2) ,虽然我发现它的牙都快掉光了,但还是选择它以更能熟练掌握本分页方法;

模型层中含有服务层、数据库访问层和数据领域层,其中:

持久层采用Hibernate(版本3.2)Hibernate管理领域对象的配置采用注解方式,与xml方式配置功能是一样。

控制层和模型层全交给Spring容器管理。

数据库管理系统不太关心,因为现在是面向对象编程,你给Hibernate怎么配置,Hibernate就怎么实现。

下一节将介绍工程建立、数据领域模型以及它的映射到数据库必须的配置(上述本例采注解方式)page对象的封装……

()项目工程基础和领域模型



一、工程基础:

1、我们先在MyEclipse开发工具里建一个WEB项目,并将各包建立如下:

com.zhangjihao.domain 存放领域对象,需要持久化到数据库的

com.zhangjihao.bean 存放非持久化到数据库的bean

com.zhangjihao.dao 数据访问层

com.zhangjihao.service 服务层

com.zhangjihao.web WEB层,其中web包下还有strutsfiltertaglib等子包

com.zhangjihao.util 自己的工具包

2、准备所需的jar包:

再将Struts1.2Spring2.5Hibernate3.2Log4jSunApache的工共组件、数据库驱动等等所需的jar包都拷入到WebRoot/WEB-INF/lib目录,并Build PathMyEclipse(一般MyEclipse会自动Build Path)

3xml文件的准备:

web.xml中加上StrutsSpring配置:

struts-config.xml中加上(第四篇将有将更详细的内容)

准备一个Springxml配置文件:

由于web.xml里已经写了beans.xml,我们就用它作为Spring的配置文件,由于Hibernate也交给了Spring管理,我们就不需要给Hibernate写配置文件,而是将Hibernate配置信息写在beans.xml

再在数据库管理系统中开一个库。通过上面的工作,我们的工程基础基本准备好。这些虽然偏主题,但笔者作事偏谨,故嗦了这么多,或许对刚接触SSH集成开发的朋友还是有很大的帮助。

二、实体搭建(Entity Bean)

我们这个主题在前面讲过围绕图书和新闻两个实体来描述分页方法,所以建立这个实体,并将Hibernate映射配置借助JPA标准在实体方法中通过注解来配置:

1、图书实体Book.java

2、新闻实体(News.java)

当然,这仅仅是为了描述分页技术,对于真正的应用,这种数据库设计是不完美的,例如最常用到图书分类、新闻分类、发布人、有效性设定等信息,在此都作省略。

编写java实体Bean时,都要养成几个习惯:

_实现Serializable接口;

_覆盖hashCode()equals(Object obj)方法;

_不再用基本类型定义字段;

_定义了常用字段的构造方法时,一定要定义一个空的构造方法。

上面两个实体类都有两个构造方法,一个空的,一个是用于列表显示时用的。我们知道,当分页显示图书时,其每本书的内容介绍(description字段)是不需要显示出来的,因为当用户点某本书查看更多详细的书内容介绍时才需要显示图书描述(description字段),而往往在数据库中description字段中数据库甚至大于其它所有字段内容之和,所以从性能角度考虑,在分页显示时图书列表则不需要description字段,大家可仔细看看上面的构造方法。

还需要注意类名上和get方法上面的注解,它们功能和*.hbm.xmk文件内容差不多,不熟悉的朋友去看看JPA的书籍。

三、 Page Bean

下面是重点的Page类封装(Page.java)
对于一个分页项,其中有三个重要的属性分别是:总记录数量、每页记录数量、当前页,有了这三个属性便可以计算出总页数,当然有必要再加一个url属性,因为第n页和n±1页对于服务器来讲是两个不同的页面,url便是用于页面的导向,好,下面看看详细的代码:

对于Page类的写法非常灵活,有点将查询结果封闭到该对象上,甚至有点将SQL语句封装里面,笔者认为只要达到功能,越简单越好。

事实上有了Page对象,整个思路就全部明白,后面的工作无非是将Page对象中的数据填充和显示出来

分享到:
评论

相关推荐

    两个字母搞定J2EE通用分页标签项目源代码

    两个字母搞定J2EE通用分页标签源代码: &lt;t:p/&gt; 这种标签,就可以在项目中任何JSP页面里打印出分页信息和链接。 效果:http://howsun.blog.sohu.com/90707791.html 该项目是早期的作品,代码不够优雅,请不要见笑。...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    而本书《搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate》则是一本针对Java Web开发的专业书籍,它详细介绍了在现代企业级应用开发中常用的技术和框架。 书中首先对Java EE的来源、整体框架和...

    java(j2ee)分页标志库,教你如何快速分页显示

    PagerTag是一个基于JSP标签库的分页解决方案,它简化了在JSP页面上的分页代码编写,使开发者可以更专注于业务逻辑,而不是分页的实现细节。 1. **PagerTag库的安装与配置** 要使用PagerTag,首先需要将其依赖添加...

    j2ee分页(假分页)

    J2EE分页通常涉及到后端服务器处理和前端页面展示两个层面。在这个例子中,我们关注的是“假分页”(也称为逻辑分页),这种技术常用于数据量不大或者不需要实时更新的数据展示。 Struts是一个经典的MVC(Model-...

    J2EE登陆和分页

    在这个“J2EE登陆和分页”的主题中,我们将深入探讨两个核心概念:用户登陆机制和数据分页显示。 首先,让我们来看一下J2EE中的用户登陆机制。在任何有权限控制的系统中,用户登录都是必不可少的功能。通常,这个...

    J2EE_企业应用实战:Struts_Spring_Hibernate_整合开发.pdf

    J2EE_企业应用实战:Struts_Spring_Hibernate_整合开发.pdf

    java分页J2EE jsp

    分页的核心在于两个关键概念:当前页码和每页记录数。以下是一些主要步骤和知识点: 1. 数据库查询:首先,我们需要根据当前页码和每页记录数来编写SQL查询语句。通常使用`LIMIT`和`OFFSET`(MySQL)或`FETCH NEXT`...

    搞定J2EE:Struts_Spring_Hibernate整合详解与典型案例源代码

    以下章节源码[03] [04] [05] [08] [10] [11] [12] [13] [14] [15] [16]

    j2ee分页技术--用于列表在一个页面不能完全显示时分成多个页面显示

    在J2EE应用程序开发中,分页技术是不可或缺的一部分,特别是在处理大数据量的列表展示时。"2009-JSTL-分页"标签暗示了我们将在讨论中重点涉及JavaServer Pages Standard Tag Library (JSTL)的分页功能。JSTL是一种...

    j2ee翻页自定义标签+sturts

    总结一下,"j2ee翻页自定义标签+sturts"的例子展示了两种在J2EE环境中实现分页的方法:一是使用自定义标签,这种方法灵活性高,但需要编写更多的底层代码;二是利用Struts框架的内置标签,这种方法开发速度快,符合...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...

    J2EE页面标签大全

    在J2EE开发中,页面标签的使用是提高效率、增强可读性和维护性的重要工具。J2EE页面标签大全涵盖了各种常用的JSP标准标签库(JSTL)以及自定义标签,它们使得开发者能够更加简洁地编写动态网页。下面我们将深入探讨...

    j2ee 1.4所有jar包

    activation.jar javax.servlet.jar javax.servlet.jsp.jar jboss-j2ee.jar jboss-jaxrpc.jar jboss-jsr77.jar jboss-saaj.jar mail.jar namespace.jar xml-apis.jar

    j2ee18:servlet02:过滤器(过滤四大web域)

    NULL 博文链接:https://1601844782.iteye.com/blog/2274023

    J2EE架构师手册:如何成为一位成功的J2EE架构

    J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的平台,它包含了各种服务、APIs和协议,以支持开发和部署多层、基于组件的、跨平台的应用程序。 作为一位J2EE架构师...

    搞定J2EE核心技术与企业应用源代码

    源代码 J2EE核心技术与企业应用:Ajax JSP Struts 2 Spring Hibernate 常建功 王向华编著 里面有书中全部例子的源代码对J2EE的学习很有帮助 由于文件太大 只上传了后面部分例子 需要全部源代码的可以联系我:hdq2018@...

    The J2EE Architect's Handbook: How to be a Successful Technical Architect for J2EE Applications

    Guide to architecting, designing, and building J2EE applications. Whether you're architect your first J2EE application or looking to keep your projects on-time and on-budget

    ajax分页案例1-j2ee

    【标题】"Ajax分页案例1-j2ee"是一个典型的Web开发中的技术应用,主要涉及到JavaScript、Ajax、JSP和Servlet等技术。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的...

    J2EE完全参考手册-J2EE概述(PDF版)

    J2EE 平台提供了一个多层结构的分布式应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(XML...本章将主要从如下几个方面介绍 J2EE: ·J2EE 框架:分布式多层应用程序模型 ·J2EE 核心技术 ·J2EE 设计模式

    j2ee和ajax 标签写的一个非常棒的例子

    在现代Web开发中,J2EE(Java 2 Platform, Enterprise Edition)和AJAX(Asynchronous JavaScript and XML)是两个重要的技术。J2EE提供了企业级的后端服务,如数据库连接、安全性、会话管理等,而AJAX则在前端提供...

Global site tag (gtag.js) - Google Analytics