display标签交替显示不同行颜色
问题
想要一个更加简单的支持列表数据分页和排序的方法。
解决方案
使用Display标签库和JSP标签库。
例4.13介绍了一个JSP页,它使用4.5节中的数据模型显示美国总统列表。这个JSP页面使用display标签库显示了一个表。这个页可以交替显示不同行的颜色,允许分页、排序,并且不要求任何自定义的Java代码。
例4.13:DisplayTag示例
<%@ 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="com.oreilly.strutsckbk.ch04.
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标签库是一个开源的标签库,您可以使用它的很多功能来显示列表数据。这个解决方案创建的页面如图4.8所示。
web页如图4.8所示,使用很少的自定义标签就能封装创建表的很多功能。假如将这个方法与以前的相比,就会明白为什么这个方法如此流行。
注意:这个方法提供了表现层的分页。对于来自底层持久层的数据总数没有任何 限制。
要用display标签库,需要从http://displaytag.sourceforge.net下载。下载完毕后,复制displaytag.jar文件到web应用程序的WEB-INF/lib文件夹。还需要复制一个标签库描述符(.tld)文件到您的文件夹。Display标签提供两种选择。此方案使用了displaytags-el.tld文件。这些标签支持JSTL表达式的属性值。
EL-version的display标签要求jst1.jar和standard.jar的JAR文件放在WEB-INF/lib文件夹中。
display标签库依赖于Jakarta Commons Lang library 2.0或者更新的版本commons-lang-2.0.jar。
图4.8 使用display标签创建的表
提示:在写这本书的时候,Struts 1.1使用了Commons Lang的早期版本,而Struts 1.2并没有包括Commons Lang的任何版本。您可以从http://jakarta.apache.org/ commons下载commons-lang-2.0.jar。在WEB-INF/lib文件夹中把commons-lang.jar替换成commons-lang-2.0.jar。从这时起,不会再有任何关于不兼容或者依赖的问题了。
display标签提供了很多功能并且都很容易使用。首先,display:table标签指定了关于整个表的信息:
<display:table id="pres" name="${pagedData.data}"
sort="list" pagesize="10" defaultsort="3">
id属性创建了一个域变量,该变量可以用作引用当前的行。name属性指定要显示的集合,sort属性指明数据如何排序,list指定整个列表都被排序,page指出只有当前页可见数据才可以排序,pagesize属性的值表示每页所显示行的数量。
提示:设置pagesize属性将自动实现分页。
defaultsort属性在数据最初排序时指定列(从1开始)。在这个方案中,这个值设置为3,即按“Term of Office”列排序。
display:caption标签在列头上绘制表的标题:
<display:caption>United States Presidents</display:caption>
display:column标签指定要显示的每一列的信息:
<display:column property="firstName" title="First Name"
sortable="true"/>
property属性指定JavaBean属性,这些属性保存列的数据。title属性指定在列头显示的文本。sortable属性指定数据是否能够按照这个列进行排序。假如这个值设置为true,那么点击列头就会按照该列排序。
display标签库提供了将显示数据导出到XML、Excel工作簿、逗号分隔值(.csv)文件的功能。这个功能可以通过一些库中的servlet过滤器来实现。接着设置display:table标签的export属性值为true。相关文档提供了display标签有关设置export功能的所有 细节。
相关链接
display标签库的完全细节可以在它的网站上找到:http://displaytag.sourceforge.net。4.3节、4.4节和4.5节介绍了如何通过其他的方法完成类似的功能。这些“自我实现”的章节在使用display标签时就不那么必要了,但它们会帮助您理解这些基本功能是如何实现的。
display标签交替显示不同行颜色的更多相关文章
- Java POI 实现Excel相同数据同一颜色,不同数据颜色交替显示
目录 1.效果图 2.具体代码实现 excel 读取工具类 excel写入和测试类 1.效果图 2.具体代码实现 excel 读取工具类 package utils; import java.io.F ...
- html中让多个li标签横排显示
1.我们可以通过为ul标签下所有li标签设定样式“display:inline-block”的方式,让多个li标签横排显示 2.除了以上方法,我们还可以所有li标签使用float(浮动)的方式,让多个 ...
- Button四角有弧度及按下显示不同的颜色
一般的button都是矩形或者正方形,但为了显示不同的效果,让界面更美化,可以对其进行处理!!! 1.四角有弧度的button 2.按下button显示不同的颜色 实现步骤: 首先在drawable文 ...
- 如何在一个div标签里显示出另一个网页? <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>
如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width=& ...
- 对table的tr使用display:block显示colspan失效问题的解决
qqqq <table> <tr> <td id="qqq" colspan="3" style="display:no ...
- Lable 控件 -- 用代码改变要显示字体的颜色
lable控件怎么改变显示字体的颜色 代码如下: string color = "#B72C34"; this.lbl.ForeColor = System.Drawing.Col ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVVAxOT ...
- 前端 html input标签 placeholder属性 标签上显示内容
前端 html input标签 的placeholder属性 标签上显示内容 <!DOCTYPE html> <html lang="en"> < ...
- DocumentManager 在标签位置显示气泡框 z
关于DevExpress DockManager下的DocumentManager头部标签如何显示气泡框,类似Visual studio那样显示文件的路径,如下图所示,------- 方式很简单,从工 ...
- DocumentManager在标签位置显示气泡框 z
关于DevExpress DockManager下的DocumentManager头部标签如何显示气泡框,类似Visual studio那样显示文件的路径,如下图所示,------- 方式很简单,从工 ...
随机推荐
- CF1921F Sum of Progression 题解
题目链接:CF 或者 洛谷 一道经典的类型题,把这种类型的题拿出来单独说一下. 注意到问题中涉及到需要维护 \(a_{x+k\times step}\) 这样的信息,这样的信息很难用树型结构维护,比较 ...
- 捉虫日记:使用OpenGL加载模型 (2023/12/11)
前天晚上,花了一个小时解决了编译Assimp时的报错问题,顺便写了篇随笔.今天继续OpenGL的学习,不出意料地再次踩坑,好在最后都解决了. 今天主要学习使用Assimp加载模型,原理很简单: ...
- SpringBoot-MyBatis - Java枚举类型 <---> MySQL Int,建立 类型处理器(typeHandlers)
场景: MySQL里的某一个字段,比如:status状态,一共有5个状态,我们会在MySQL里 建立 status(int)字段,1.2.3.4.5 来标记5种状态:利用MyBatis在自动代码生成器 ...
- Java Calendar 多用,日期 加减
服务需要订购一个月,订购一个月 不等于增加 30天:若是1,3,5的话应该 31天,要善用 Calendar public static void main(String[] args) throws ...
- TStringList,的IndexOf,find,IndexOfName 例子
a=wokao b=in c=wori d=ri e=我靠 f=我插 procedure TForm1.Button1Click(Sender: TObject); var MyList: TStri ...
- OGG-将PostgreSQL通过OGG_BigData同步到Kafka后数据存在8小时时间差
问题描述: 将PostgreSQL通过OGG_BigData同步到Kafka后数据存在8小时时间差. 问题原因: kafka.properties中的参数goldengate.userexit.tim ...
- ARM指针寄存器——堆栈指针寄存器SP、程序计数器PC、连接寄存器LR详解
堆栈的实现方法 在随机存储器区划出一块区域作为堆栈区,数据可以一个个顺序地存入(压入)到这个区域之中,这个过程称为'压栈'(push ).通常用一个指针(堆栈指针 SP-StackPointer ...
- 跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA)
跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA) 介绍:首先在 Ziya-LLaMA-13B-V1基线模型的基础上加入中医教材.中医各 ...
- SpringBoot整合EasyExcel实现Excel表格的导出功能
前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教. 在后端管理系统的开发中,经常有导出当前表格数 ...
- [BUUCTF][Web][极客大挑战 2019]Havefun 1
打开靶机的URL,看到一个页面 右键查看源代码,看到有用信息 <html> ... <!-- $cat=$_GET['cat']; echo $cat; if($cat=='dog' ...