DisplayTag应用总结

我们目前开发的java Web项目中用到了DisplayTag,使用时参考了下面这篇网上找到的总结文档,感觉总结的很好,贴出来,供需求者参考。

 DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net<o:p></o:p>

   一、最简单的情况,未使用<display:column/>标签
  
   <%request.setAttribute( "test", new ReportList(6) );%>
   <display:table name="test" />
  
   标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。
  
   二、使用<display:column/>标签的情况
  
   <display:table name="test">
   <display:column property="id" title="ID" />
   <display:column property="name" />
   <display:column property="email" />
   <display:column property="status" />
   <display:column property="description" title="Comments"/>
   </display:table>
  
   property对应List里对象的属性(用getXXX()方法取得),title则对应表格表头里的列名。定义列有两种方式:
  
   A、<display:column property="email" />
  
   使用<display:column/>标签里的property属性来定义
  
   B、<display:column title="email">email@it.com</display:column>
  
   在<display:column/>标签体里增加内容,可以是常量,也可以用其他标签等等
  
   两种方式比较,用property属性来定义更加快速和利于排序。
  
   三、表格显示样式的定义
  
   A、在<display:table/>和<display:column/>标签里指定标准的html属性,烦琐
  
   B、修改样式表
   <display:table name="test" class="mars">
   <display:column property="id" title="ID" class="idcol"/>
   <display:column property="name" />
   <display:column property="email" />
   <display:column property="status" class="tableCellError" />
   <display:column property="description" title="Comments"/>
   </display:table>
  
   通过class属性来指定所要应用的样式。可以在其默认样式表里(./css/screen.css)直接修改
  
   四、标签取得数据的数据源
  
   有四种范围
  
   pageScope
   requestScope (默认) <display:table name="test2" >
   sessionScope <display:table name="sessionScope.holder.list" > 注意,这里要指定范围,非默认
   applicationScope
  
   五、通过增加id属性创建隐含的对象
  
   <display:table name="test" id="testit">
   <display:column property="id" title="ID" />
   <display:column property="name" />
   <display:column title="static value">static</display:column>
   <display:column title="row number (testit_rowNum)"><%=pageContext.
getAttribute("testit_rowNum")%></display:column>
   <display:column title="((ListObject)testit).getMoney()">
<%=((ListObject)pageContext.
getAttribute("testit")).getMoney()%></display:column>
   </display:table>
  
   注意到在<display:table/>里增加了id属性,这时就在page context里创建了一个隐含对象,指向List里的当前对象,
  
   可以通过(ListObject)pageContext.getAttribute("id")来捕获这个对象。同时还创建了一个id_rowNum对象,同样,可
  
   通过pageContext.getAttribute("testit_rowNum")来捕获,它仅仅代表当前行的行数。
  
   有了这两个隐含对象,就可以通过其他标签来访问,例如Jstl:
  
   <display:table id="row" name="mylist">
   <display:column title="row number" >
   <c:out value="${row_rowNum}"/>
   </display:column>
   <display:column title="name" >
   <c:out value="${row.first_name}"/>
   <c:out value="${row.last_name}"/>
   </display:column>
   </display:table>
  
   六、显示部分数据
  
   显示开始五条数据:通过设定length属性
  
   <display:table name="test" length="5">
   <display:column property="id" title="ID" />
   <display:column property="email" />
   <display:column property="status" />
   </display:table>
  
   显示第三到第八条数据:通过设定offset和length属性
  
   <display:table name="test" offset="3" length="5">
   <display:column property="id" title="ID" />
   <display:column property="email" />
   <display:column property="status" />
   </display:table>
  
   七、对email和url地址的直接连接
  
   <display:table name="test" >
   <display:column property="id" title="ID" />
   <display:column property="email" autolink="true" />
   <display:column property="url" autolink="true" />
   </display:table>
  
   如果要显示的对象里包含email和url地址,则可以在display:column里直接设定autolink="true"来直接连接
  
   八、使用装饰模式转换数据显示(写自己的 decorator )
  
   A、对整个表格应用decorator
  
   <display:table name="test" decorator="org.displaytag.sample.Wrapper" >
   <display:column property="id" title="ID" />
   <display:column property="email" />
   <display:column property="status" />
   <display:column property="date" />
   <display:column property="money" />
   </display:table>
   org.displaytag.sample.Wrapper即自己写的decorator,它要继承TableDecorator类,看看它的一个方法:
   public String getMoney()
   {
   return this.moneyFormat.format(((ListObject) this.getCurrentRowObject()).getMoney());
   }
  
   很明显,它通过父类的getCurrentRowObject()方法获得当前对象,然后对其getMoney()方法进行‘油漆’
  
   B、对单独的column应用decorator
  
   <display:table name="test">
   <display:column property="id" title="ID" />
   <display:column property="email" />
   <display:column property="status" />
   <display:column property="date" decorator="org.displaytag.sample.LongDateWrapper" />
   </display:table>
   org.displaytag.sample.LongDateWrapper要实现ColumnDecorator接口,它的方法:
   public final String decorate(Object columnValue)
   {
   Date date = (Date) columnValue;
   return this.dateFormat.format(date);
   }
  
   显然,它获得不了当前对象(因为它实现的是接口),仅仅是获得该对象的columnValue,然后‘油漆’
  
   九、创建动态连接
  
   有两种方法创建动态连接:
  
   A、在<display:column/>里通过增加href、paramId、paramName、paramScope、paramProperty属性
  
   href       基本的URL 地址
   paramId     加在URL 地址后的参数名称
   paramName    数据bean的名称,一般为null(即使用当前List里的对象)
   paramScope    数据bean的范围,一般为null
   paramProperty  数据bean的属性名称,用来填充URL 地址后的参数值
   <display:table name="sessionScope.details">
   <display:column property="id" title="ID" href="details.jsp" paramId="id" />
   <display:column property="email" href="details.jsp" paramId="action"
paramName="testparam" paramScope="request" />
   <display:column property="status" href="details.jsp"
paramId="id" paramProperty="id" />
   </display:table>
  
   这种方法简便直接,但缺点是无法产生类似details.jsp?id=xx&action=xx的复合URL
  
   B、应用decorator 创建动态连接:
  
   <display:table name="sessionScope.details" decorator=
"org.displaytag.sample.Wrapper" >
   <display:column property="link1" title="ID" />
   <display:column property="email" />
   <display:column property="link2" title="Actions" />
   </display:table>
   org.displaytag.sample.Wrapper里的方法:
   public String getLink1()
   {
   ListObject lObject= (ListObject)getCurrentRowObject();
   int lIndex= getListIndex();
   return "<a href=\"details.jsp?index=" + lIndex + "\">"
+ lObject.getId() + "</a>";
   }
  
   public String getLink2()
   {
   ListObject lObject= (ListObject)getCurrentRowObject();
   int lId= lObject.getId();
  
   return "<a href=\"details.jsp?id=" + lId
   + "&action=view\">View</a> | "
   + "<a href=\"details.jsp?id=" + lId
   + "&action=edit\">Edit</a> | "
   + "<a href=\"details.jsp?id=" + lId
   + "&action=delete\">Delete</a>";
   }
  
   十、分页
  
   实现分页非常的简单,增加一个pagesize属性指定一次想显示的行数即可
  
   <display:table name="sessionScope.test" pagesize="10">
   <display:column property="id" title="ID" />
   <display:column property="name" />
   <display:column property="email" />
   <display:column property="status" />
   </display:table>
  
   十一、排序
  
   排序实现也是很简单,在需要排序的column里增加sortable="true"属性,headerClass="sortable"仅仅是
  
   指定显示的样式。column里的属性对象要实现Comparable接口,如果没有的话可以应用decorator
  
   defaultsort="1"       默认第一个column排序
   defaultorder="descending"  默认递减排序
   <display:table name="sessionScope.stest" defaultsort="1"
defaultorder="descending">
   <display:column property="id" title="ID" sortable="true"
headerClass="sortable" />
   <display:column property="name" sortable="true" headerClass="sortable"/>
   <display:column property="email" />
   <display:column property="status" sortable="true" headerClass="sortable"/>
   </display:table>
  
   注意的是,当同时存在分页时排序仅仅针对的是当前页面,而不是整个List都进行排序
  
   十二、column 分组
  
   分组只是需要在column里增加group属性
  
   <display:table name="test" class="simple">
   <display:column property="city" title="CITY" group="1"/>
   <display:column property="project" title="PROJECT" group="2"/>
   <display:column property="amount" title="HOURS"/>
   <display:column property="task" title="TASK"/>
   </display:table>
  
   十三、导出数据到其他格式(页面溢出filter??)
  
   在<display:table/>里设定export="true"
  
   在<display:column/>里设定media="csv excel xml pdf" 决定该字段在导出到其他格式时被包不包含,不设定则都包含
  
   <display:setProperty name="export.csv" value="false" />
  
   决定该种格式能不能在页面中导出
  
   <display:table name="test" export="true" id="currentRowObject">
   <display:column property="id" title="ID"/>
   <display:column property="email" />
   <display:column property="status" />
   <display:column property="longDescription"
media="csv excel xml pdf" title="Not On HTML"/>
   <display:column media="csv excel" title="URL" property="url"/>
   <display:setProperty name="export.pdf" value="true" />
   <display:setProperty name="export.csv" value="false" />
   </display:table>
  
   十四、配置属性,覆盖默认
  
   两种方法:
  
   A、在程序classpath下新建displaytag.properties文件
  
   B、对于单个表格,应用<display:setProperty>标签
  
   具体可配置的属性:http://displaytag.sourceforge.net/configuration.html
   十五、一个完整的例子
   <display:table name="test" export="true" sort="list" pagesize="8">
   <display:column property="city" title="CITY" group="1"
sortable="true" headerClass="sortable"/>
   <display:column property="project" title="PROJECT"
group="2" sortable="true" headerClass="sortable"/>
   <display:column property="amount" title="HOURS"/>
   <display:column property="task" title="TASK"/>
   </display:table>
   sort="list" 对整个list进行排序
  
   导出数据到其他格式时,group无效

开源AI数字人DUIX:从零构建你的智能交互助手 本文详细介绍了如何利用开源AI数字人DUIX从零构建智能交互助手。文章阐述了DUIX作为开源项目的核心优势,包括低成本启动、低网络依赖和高度可定制性,并提供了从开发环境搭建、核心模块(AI模型、语音、形象)配置到个性化业务逻辑开发与最终部署的完整实践指南,帮助开发者快速掌握构建专属AI数字人的全流程。 阅读详情

相关推荐

Windows系统的Mamba环境配置详细教程(状态空间模型)

causal_conv1d也是安装mamba的依赖必须库。安装完成后,通过pip list可以查看到安装的库。Triton是安装mamba的依赖,需要先安装。上述工作准备好后,按下面步骤安装。直接根据离线文件安装即可。是自己的虚拟环境名字。

2301_77831163的博客 3674

DisplayTag应用指南

【摘 要】本文详细介绍Web开发设计中的:DisplayTag应用指南,DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net  甲子社区+ D! I9 G* j- S. J3 q   一、最简单的情况,未使用&lt;display:column/&gt;标签     &lt;%request.setAttrib...

wodamazi 2217

工业级24V电源保护电路深度解析:五重防护机制详解

自恢复保险丝(PPTC,Positive Temperature Coefficient)是一种过流保护元件✅可恢复:过流后自动恢复,无需更换⚡响应快:电流超标立即动作🔄多次使用:在额定范围内可反复使用第1层(F1):阻挡过流 → 物理熔断第2层(D3):吸收浪涌 → 能量泄放第3层(Q1):防止反接 → 逻辑阻断第4层(Q2/Q3):抵御过压 → 主动切断第5层(CR):平滑启动 → 时序控制设计哲学:"让每一级保护专注做好一件事"通过这篇文章,我们深入理解了:✅自恢复保险丝。

qq_58068673的博客 3563

DisplayTag 应用

<br />DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net  <br />一、最简单的情况,未使用<display:column/>标签<br />  <%request.setAttribute( "test", new ReportList(6) );%><br />  <display:table name="test" /><br />  标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用

DreaJay的专栏 500

autodl云服务器使用中的conda源报错

通过find path -name filename找到.condarc文件,在autodl服务器中,一般在/root/.condarc。为了利用jypyter打开conda虚拟环境运行,需要下载ipykenel。这个报错是源的问题,在通过源获取包元数据时出现了HTTP 429错误。通过conda换源解决。修改.condarc文件,命令: vim .condarc。但这样还不能解决问题,得把报错中有问题的源注释掉。通过以下命令添加清华镜像源。把报错的链接源注释如下。

Ty_kilig的博客 1584

Qwen3.5本地部署实战:4B模型在RTX3060上离线运行指南

大语言模型本地化部署正从云端服务转向终端设备,其核心是模型轻量化、硬件适配与推理引擎协同优化。基于INT4量化感知训练和GGUF格式支持,Qwen3.5在结构精简、Tokenizer轻量及显存友好性方面显著优于前代,使4B级别模型可在RTX 3060等中端显卡上稳定运行。该技术路径兼顾低延迟响应(<2秒)、数据隐私保障与离线可用性,广泛适用于法律文书分析、医疗文档处理、教育AI助手等对安全性与实时性双重要求的场景。本文聚焦Qwen3.5-4B量化部署全流程,涵盖llama.cpp编译调优、GPU层加载策略及

weixin_32181267的博客 363

DisplayTag应用

DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net 一、最简单的情况,未使用标签标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。二、使用标签的情况  property对应List里对象的属性(用getXXX()方法取得),title则对应表格表头里的列名。

603

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 599

DisplayTag 应用指南

转http://blog.sina.com.cn/s/blog_5ec96f370100bu3u.html~type=v5_one&amp;label=rela_prevarticle   说明: 刚刚学习完DisplayTag标签, 正准备根据官网英文的tutorial写一份总结, 去看到别人已经写好了,而且写得还挺好的,所以也就不再浪费时间了。   DisplayTag应用指南   ...

mose 229

交换机背板带宽、交换容量与包转发率到底是啥?

在网络工程中,交换机是核心设备之一,而关于它的性能指标,背板带宽、交换容量、以及包转发率往往成为人们衡量其性能的重要参数。这些术语的定义、关系、以及在实际场景中的应用,都对交换机的选型与部署有着重要意义。本文将为您全面解读这些概念,帮助您深入了解交换机的核心性能指标。

网络技术联盟站 1548

apt-get update时出现GPG error:... bionic InRelease:The following signatures were invalid: EXPKEYS解决方案

本文主要介绍了apt-get update时出现W: GPG error: … bionic InRelease: The following signatures were invalid: EXPKEYSIG B7B3B788A8D3785C MySQL Release Engineering E: The repository ‘… bionic InRelease’ is not signed.解决方案,希望能对使用Ubuntu系统的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

displaytag应用

DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net/  一、最简单的情况,未使用标签      标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的

java_xiaoyi的专栏 869

vue2学习笔记2-老规矩,从Hello World开始,了解Vue实例和模板

想要把“Hello,World”放置在页面上,首先需要准备一个HTML的块级元素div,来承接内容。

l_q_l的专栏 1256

(转)DisplayTag应用指南

DisplayTag应用指南 【摘 要】本文详细介绍Web开发设计中的:DisplayTag应用指南,DisplayTag是一个非常好用的表格显示标签,适合MVC模式。  DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net      一、最简单的情况,未使用&lt;display:column/&gt;标...

Only the heart peace will be prosperity 151

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

displayTag的应用

displayTag作为当前还算得上比较流行的表现层工具插件,在sourceForge官方网站(http://displaytag.sourceforge.net/)上,平均每天的访问量数以万计,本文是建立在实际开发过程中 碰到的导出excel报表的实际需求,所获得的一些学习心得与技巧与大家分享. 默认的displayTag导出的Excel格式会有中文乱码,网上大部分文章都说只有改一下,org.d...

e度空间 139

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

displaytag应用小结

displaytag 是一个不错的表格标签,可以很方便的取数据放在一个表格里面,支持页面分页 使用总结: 1配置: 导出excel,pdf,xml,cvs文件配置 [code="xml"] ResponseOverrideFilter org.displaytag.filter.ResponseOverrideFilter Resp...

爪(Zhao)哇! 241

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: DisplayTag应用总结
下一篇: 如何写出性能优良的SQL?
程序员长弓
博客等级 码龄20年 650粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值