J2EE中使用Display标记库来展示表格

j2ee

  用网页展示表格时,如果行数太多,有时候需要把它们分成很多页.而且各行之间使用不同的背景色来方便用户阅读.或者可能还需要排序。虽然实现上面的功能都不难,但是如果使用Display标记库将能够大大简化开发.它模仿google,baidu页面的风格,把许多行的表格分成各个页面,并提供了常用的功能。

  数据模型是很简单的美国总统JavaBean.它有3个简单的String属性。

  Java代码如下:

PagedData.java

import java.util.ArrayList;
import java.util.List;

public class PagedData {

 private List list;

 public PagedData( ) {
  list = new ArrayList( );
  list.add( new President( "Garfield", "James", "1881") );
  list.add( new President( "Arthur", "Chester", "1881-85") );
  list.add( new President( "Cleveland", "Grover", "1885-89") );
  list.add( new President( "Harrison", "Benjamin", "1889-93") );
  list.add( new President( "Cleveland", "Grover", "1893-97") );
  list.add( new President( "McKinley", "William", "1897-1901") );
  list.add( new President( "Roosevelt", "Theodore", "1901-09") );
  list.add( new President( "Taft", "William H.", "1909-13") );
  list.add( new President( "Wilson", "Woodrow", "1913-21") );
  list.add( new President( "Jackson", "Andrew", "1829-37") );
  list.add( new President( "Harding", "Warren", "1921-23") );
  list.add( new President( "Coolidge", "Calvin", "1923-29") );
  list.add( new President( "Hoover", "Herbert", "1929-33") );
  list.add( new President( "Roosevelt", "Franklin D.", "1933-45") );
  list.add( new President( "Truman", "Harry", "1945-53") );
  list.add( new President( "Eisenhower", "Dwight", "1953-61") );
  list.add( new President( "Kennedy", "John F.", "1961-63") );
  list.add( new President( "Johnson", "Lyndon", "1963-69") );
  list.add( new President( "Nixon", "Richard", "1969-74") );
  list.add( new President( "Ford", "Gerald", "1974-77") );
  list.add( new President( "Carter", "Jimmy", "1977-81") );
  list.add( new President( "Reagan", "Ronald", "1981-89") );
  list.add( new President( "Bush", "George H.W.", "1989-93") );
  list.add( new President( "Clinton", "William J.", "1993-2001") );
  list.add( new President( "Bush", "George W.", "2001-present") );
  list.add( new President( "Washington", "George", "1789-97") );
  list.add( new President( "Adams", "John", "1797-1801") );
  list.add( new President( "Jefferson", "Thomas", "1801-09") );
  list.add( new President( "Madison", "James", "1809-17") );
  list.add( new President( "Monroe", "James", "1817-25") );
  list.add( new President( "Jackson", "Andrew", "1829-37") );
  list.add( new President( "Van Buren", "Martin", "1837-41") );
  list.add( new President( "Harrison", "William Henry", "1841") );
  list.add( new President( "Tyler", "John", "1841-45") );
  list.add( new President( "Polk", "James", "1845-49") );
  list.add( new President( "Taylor", "Zachary", "1849-50") );
  list.add( new President( "Fillmore", "Millard", "1850-53") );
  list.add( new President( "Pierce", "Franklin", "1853-57") );
  list.add( new President( "Buchanan", "James", "1857") );
  list.add( new President( "Lincoln", "Abraham", "1861-65") );
  list.add( new President( "Johnson", "Andrew", "1865-69") );
  list.add( new President( "Grant", "Ulysses S.", "1869-77") );
  list.add( new President( "Hayes", "Rutherford B.", "1877-81") );
 }
 public List getData( ) {
  return list;
 }
}

President.java

public class President {
 public President(String lname, String fname, String term) {
  lastName = lname;
  firstName = fname;
  this.term = term;
 }

 public String getFirstName( ) {
  return firstName;
 }
 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }
 public String getLastName( ) {
  return lastName;
 }
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 public String getTerm( ) {
  return term;
 }
 public void setTerm(String term) {
  this.term = term;
 }

 private String lastName;
 private String firstName;
 private String term;
}
  下面的Jsp页面是展示表格的,也体现了Display库最常见的用法:

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>
<html>
<head>
<title>Struts Cookbook - Chapter 4 : Display Tag Example</title>
<style>
.even {background-color:orange;}
.odd {background-color:yellow;}
</style>
</head>
<body>
<h2>Display Tag Examples</h2>
<jsp:useBean id="pagedData" class="PagedData"/>
<display:table id="pres" name="${pagedData.data}"
sort="list" pagesize="10" defaultsort="3">
<display:caption>United States Presidents</display:caption>
<display:setProperty name="basic.show.header" value="true"/>
<display:column property="firstName" title="First Name"
sortable="true"/>
<display:column property="lastName" title="Last Name"
sortable="true"/>
<display:column property="term" title="Term of Office"
sortable="true"/>
</display:table>
</body>
</html>
  在浏览器里打开页面:

  看见了吧,效果确实不错:)

  要使用display标记库,需要在这里下载:

http://displaytag.sourceforge.net

  把display.jar文件放到WEB-INF/lib中.

  注意:

  这里用到了EL,所以 jstl.jar和standard.jar这两个库需要在lib中.

  Display.jar依赖2.0或以上的Jakarta Commons Lang库,commons-lang-2.0.jar和Jakarta Commons Collections库,commons-collections.jar.

  它们分别在:

http://jakarta.apache.org/commons和http://jakarta.apache.org/commons/collections/

  下载,然后把对应的jar文件copy到WEB-INF/lib中.

简单介绍用法,其实也不用我多说,看看jsp文件也就基本懂了.

<display:table id="pres" name="${pagedData.data}"
sort="list" pagesize="10" defaultsort="3">

id是以后用到时的变量.name是要展现的集合数据.list表示整个list被排序.pagesize表示每页所要展示的数.defaultsort表示最开始是按第几列排序的,注意这里是以1开始计数的.

<display:caption>United States Presidents</display:caption>
isplay:caption标记中间的字符串是用来放到表格上面的标题.

<display:column property="firstName" title="First Name"
sortable="true"/>
display:column标记指定了每列的属性.

还要更多的使用方法,见Display标记库的Doc文档.

时间: 2024-10-28 07:57:13

J2EE中使用Display标记库来展示表格的相关文章

JSP标准标记库促进了网页的开发

js|标准|网页 Java Server Pages (JSP) 标准标记库 (JSTL)的版本的发布对于JSP/servlet开发者来说是一个重大的进展.有了一个表达语言(EL)和一组四种强大的.易于学习的标准标记库,JSTL极有可能不久后成为实现动态的.基于Java的站点的主要方法. 1996年对JSP servlet的介绍使得Java成为动态网页开发的合理的选择.随后出现的Java服务器页(JSP)是走向快速的.可维护的Java网页实现过程的合理进化的一步,紧接着就出现了JSP标记的支持.

JSP标记库

简介:JavaServer Pages(JSP)技术是用于开发 Web 应用的优秀体系结构,但它的最重要的实用技 术之一 ― 定制标记库(custom tag library)― 却常常未被充分利用.标记库实用技术未被充分利用 的主要原因不是技术上的,而是语言上的.标记库生产者和消费者说的不是相同的语言.JSP 专家和顾 问 Noel J. Bergman 揭示了问题的本质并提供了一些可行的解决方案. 将底层内容模型与表示分离是件好事,这在 Web 应用开发人员中间得到了普遍的认同.在多数大型

Spring Framework标记库初学指南

初学 Spring是一个服务于所有层面的application framework:提供了bean的配置基础,AOP的支持,JDBC的提取框架,抽象事务支持,等等.它有一个非常显著的特点:在某个层面上如果你不需要Spring的支持,你就可以不使用String的class,只使用它的某一部分的功能.从它的设计理念,你可以看到String帮助你实现了真正的逻辑层和web层的分离. 相对于EJB来说,Spring是一个轻量级的J2EE应用开发框架.这里提到的轻量级指的是Spring框架本身,而不是说S

使用JSP标记库校验用户输入

js 在任何一个基于Web的应用中,程序逻辑要求用户提交需要校验的信息,而应用的创建者则可以用两种方式来检测数据.第一种方法就是在客户端校验,甚至在信息提交到服务器上之前也可以进行.通常,这种校验使用运行在客户端因特网浏览器内的JavaScript就可以完成.尽管表格将要提交,但是脚本还是会检查所有请求的域,如果不符合就弹出错误信息.第二种方法就是在服务器端校验.在执行对数据的任何操作之前,使用应用服务器支持的技术来完成校验. 服务器端的校验使服务器更紧张,却给予了程序员更多的控制,并且保证了数

Spring Framework标记库简介

Spring是一个服务于所有层面的application framework:提供了bean的配置基础,AOP的支持,JDBC的提取框架,抽象事务支持,等等.它有一个非常显著的特点:在某个层面上如果你不需要Spring的支持,你就可以不使用String的class,只使用它的某一部分的功能.从它的设计理念,你可以看到String帮助你实现了真正的逻辑层和web层的分离. 相对于EJB来说,Spring是一个轻量级的J2EE应用开发框架.这里提到的轻量级指的是Spring框架本身,而不是说Spri

JSP最佳实践: 将自定义标记库打包

简介:将标记库存放在本地文件系统中的确有利于内部(in-house)开发和测试,但是这并非永远都 是好的解决方案.自定义标记库应该能够被广泛地访问,也就是说,必须以一种标准的和安全的方式来发 布它们.BrettMcLaughlin 解释了如何将您的自定义标记库打包到 JAR 文件,以便在任何 JSP 兼容的 Web 容器中更容易地维护.发布和安装它们. 到目前为止,我们在本系列中讲到的都是自定义标记库在本地文件系统中的情况,在这种情况下,我 们可以很容易地访问和操作这些自定义标记库.然而,虽然本

字段类型为date,设置将当前的系统时间存入库中,但是存到库中的值 日期对,时间不对

问题描述 字段类型为date,设置将当前的系统时间存入库中,但是存到库中的值 日期对,时间不对在后台用这个给时间字段赋值Date curDate = new Date(System.currentTimeMillis());//获取当前时间 dto.setCreateTime(curDate);字段值:Thu Nov 03 13:34:46 CST 2011数据库中的值03-11月-11 12:00 :00 解决方案 存入数据库如果是当前时间的话,最好用数据库自带的函数,比如mysql就是sys

在Android中通过jni方式使用编译好的FFmpeg库-Android中使用FFmpeg媒体库(二)

原文:http://doandroid.info/?p=471 在继上篇在32位的Ubuntu 11.04中为Android NDK r6编译FFmpeg最新版0.8.1后,本人来给大家展示一下如何在Android中使用编译好的FFmpeg库. 整体调用逻辑为: 1 编译完ffmpeg库 2 使用jni方式撰写c代码,其中需要包含相应的ffmpeg的头文件 3 撰写相应的Android.mk文件,里面指定需要编译的c代码以及需要链接的动态库 4 执行ndk-build生成相应的jni库 5 创建

ios-IOS中如何将开源库AFNetworking的GET函数中获取的数据,在函数体外利用呢?

问题描述 IOS中如何将开源库AFNetworking的GET函数中获取的数据,在函数体外利用呢? 代码如下,如何在GET函数外获取到在其内解析到的数据,从而加以利用呢? // // ViewController.m // 1 // // Created by on 16-2-2. // Copyright (c) 2016年 . All rights reserved. // #import "ViewController.h" #import "AFHTTPRequest