关闭

关闭

关闭

封号提示

内容

首页 DisplayTag应用指南.doc

DisplayTag应用指南.doc

DisplayTag应用指南.doc

上传者: zhang巧儿 2018-04-16 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《DisplayTag应用指南doc》,可适用于IT/计算机领域,主题内容包含DisplayTag应用指南DisplayTag应用指南【摘要】本文详细介绍Web开发设计中的:DisplayTag应用指南DisplayTag是一符等。

DisplayTag应用指南DisplayTag应用指南【摘要】本文详细介绍Web开发设计中的:DisplayTag应用指南DisplayTag是一个非常好用的表格显示标签适合MVC模式。DisplayTag是一个非常好用的表格显示标签适合MVC模式其主页在一、最简单的情况未使用<display:column>标签<requestsetAttribute("test",newReportList())><display:tablename="test">标签遍历List里的每一个对象并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。二、使用<display:column>标签的情况<display:tablename="test"><display:columnproperty="id"title="ID"><display:columnproperty="name"><display:columnproperty="email"><display:columnproperty="status"><display:columnproperty="description"title="Comments"><display:table>property对应List里对象的属性(用getXXX()方法取得)title则对应表格表头里的列名。定义列有两种方式:A、<display:columnproperty="email">使用<display:column>标签里的property属性来定义B、<display:columntitle="email">emailitcom<display:column>在<display:column>标签体里增加内容可以是常量也可以用其他标签等等两种方式比较用property属性来定义更加快速和利于排序。三、表格显示样式的定义A、在<display:table>和<display:column>标签里指定标准的html属性烦琐B、修改样式表<display:tablename="test"class="mars"><display:columnproperty="id"title="ID"class="idcol"><display:columnproperty="name"><display:columnproperty="email"><display:columnproperty="status"class="tableCellError"><display:columnproperty="description"title="Comments"><display:table>通过class属性来指定所要应用的样式。可以在其默认样式表里(cssscreencss)直接修改四、标签取得数据的数据源有四种范围pageScoperequestScope(默认)<display:tablename="test">sessionScope<display:tablename="sessionScopeholderlist">注意这里要指定范围非默认applicationScope五、通过增加id属性创建隐含的对象<display:tablename="test"id="testit"><display:columnproperty="id"title="ID"><display:columnproperty="name"><display:columntitle="staticvalue">static<display:column><display:columntitle="rownumber(testitrowNum)"><=pageContextgetAttribute("testitrowNum")><display:column><display:columntitle="((ListObject)testit)getMoney()"><=((ListObject)pageContextgetAttribute("testit"))getMoney()><display:column><display:table>注意到在<display:table>里增加了id属性这时就在pagecontext里创建了一个隐含对象指向List里的当前对象可以通过(ListObject)pageContextgetAttribute("id")来捕获这个对象。同时还创建了一个idrowNum对象同样可通过pageContextgetAttribute("testitrowNum")来捕获它仅仅代表当前行的行数。有了这两个隐含对象就可以通过其他标签来访问例如Jstl:<display:tableid="row"name="mylist"><display:columntitle="rownumber"><c:outvalue="${rowrowNum}"><display:column><display:columntitle="name"><c:outvalue="${rowfirstname}"><c:outvalue="${rowlastname}"><display:column><display:table>六、显示部分数据显示开始五条数据:通过设定length属性<display:tablename="test"length=""><display:columnproperty="id"title="ID"><display:columnproperty="email"><display:columnproperty="status"><display:table>显示第三到第八条数据:通过设定offset和length属性<display:tablename="test"offset=""length=""><display:columnproperty="id"title="ID"><display:columnproperty="email"><display:columnproperty="status"><display:table>七、对email和url地址的直接连接<display:tablename="test"><display:columnproperty="id"title="ID"><display:columnproperty="email"autolink="true"><display:columnproperty="url"autolink="true"><display:table>如果要显示的对象里包含email和url地址则可以在display:column里直接设定autolink="true"来直接连接八、使用装饰模式转换数据显示(写自己的decorator)A、对整个表格应用decorator<display:tablename="test"decorator="orgdisplaytagsampleWrapper"><display:columnproperty="id"title="ID"><display:columnproperty="email"><display:columnproperty="status"><display:columnproperty="date"><display:columnproperty="money"><display:table>orgdisplaytagsampleWrapper即自己写的decorator它要继承TableDecorator类看看它的一个方法:publicStringgetMoney(){returnthismoneyFormatformat(((ListObject)thisgetCurrentRowObject())getMoney())}很明显它通过父类的getCurrentRowObject()方法获得当前对象然后对其getMoney()方法进行‘油漆’B、对单独的column应用decorator<display:tablename="test"><display:columnproperty="id"title="ID"><display:columnproperty="email"><display:columnproperty="status"><display:columnproperty="date"decorator="orgdisplaytagsampleLongDateWrapper"><display:table>orgdisplaytagsampleLongDateWrapper要实现ColumnDecorator接口它的方法:publicfinalStringdecorate(ObjectcolumnValue){Datedate=(Date)columnValuereturnthisdateFormatformat(date)}显然它获得不了当前对象(因为它实现的是接口)仅仅是获得该对象的columnValue然后‘油漆’九、创建动态连接有两种方法创建动态连接:A、在<display:column>里通过增加href、paramId、paramName、paramScope、paramProperty属性href基本的URL地址paramId加在URL地址后的参数名称paramName数据bean的名称一般为(即使用当前List里的对象)paramScope数据bean的范围一般为paramProperty数据bean的属性名称用来填充URL地址后的参数值<display:tablename="sessionScopedetails"><display:columnproperty="id"title="ID"href="detailsjsp"paramId="id"><display:columnproperty="email"href="detailsjsp"paramId="action"paramName="testparam"paramScope="request"><display:columnproperty="status"href="detailsjsp"paramId="id"paramProperty="id"><display:table>这种方法简便直接但缺点是无法产生类似detailsjspid=xxaction=xx的复合URLB、应用decorator创建动态连接:<display:tablename="sessionScopedetails"decorator="orgdisplaytagsampleWrapper"><display:columnproperty="link"title="ID"><display:columnproperty="email"><display:columnproperty="link"title="Actions"><display:table>orgdisplaytagsampleWrapper里的方法:publicStringgetLink(){ListObjectlObject=(ListObject)getCurrentRowObject()intlIndex=getListIndex()return"<ahref="detailsjspindex="lIndex"">"lObjectgetId()"<a>"}publicStringgetLink(){ListObjectlObject=(ListObject)getCurrentRowObject()intlId=lObjectgetId()return"<ahref="detailsjspid="lId"action=view">View<a>|""<ahref="detailsjspid="lId"action=edit">Edit<a>|""<ahref="detailsjspid="lId"action=delete">Delete<a>"}十、分页实现分页非常的简单增加一个pagesize属性指定一次想显示的行数即可<display:tablename="sessionScopetest"pagesize=""><display:columnproperty="id"title="ID"><display:columnproperty="name"><display:columnproperty="email"><display:columnproperty="status"><display:table>十一、排序排序实现也是很简单在需要排序的column里增加sortable="true"属性headerClass="sortable"仅仅是指定显示的样式。column里的属性对象要实现Comparable接口如果没有的话可以应用decoratordefaultsort=""默认第一个column排序defaultorder="descending"默认递减排序<display:tablename="sessionScopestest"defaultsort=""defaultorder="descending"><display:columnproperty="id"title="ID"sortable="true"headerClass="sortable"><display:columnproperty="name"sortable="true"headerClass="sortable"><display:columnproperty="email"><display:columnproperty="status"sortable="true"headerClass="sortable"><display:table>注意的是当同时存在分页时排序仅仅针对的是当前页面而不是整个List都进行排序十二、column分组分组只是需要在column里增加group属性<display:tablename="test"class="simple"><display:columnproperty="city"title="CITY"group=""><display:columnproperty="project"title="PROJECT"group=""><display:columnproperty="amount"title="HOURS"><display:columnproperty="task"title="TASK"><display:table>十三、导出数据到其他格式(页面溢出filter)在<display:table>里设定export="true"在<display:column>里设定media="csvexcelxmlpdf"决定该字段在导出到其他格式时被包不包含不设定则都包含<display:setPropertyname="exportcsv"value="false">决定该种格式能不能在页面中导出<display:tablename="test"export="true"id="currentRowObject"><display:columnproperty="id"title="ID"><display:columnproperty="email"><display:columnproperty="status"><display:columnproperty="longDescription"media="csvexcelxmlpdf"title="NotOnHTML"><display:columnmedia="csvexcel"title="URL"property="url"><display:setPropertyname="exportpdf"value="true"><display:setPropertyname="exportcsv"value="false"><display:table>十四、配置属性覆盖默认两种方法:A、在程序classpath下新建displaytagproperties文件B、对于单个表格应用<display:setProperty>标签具体可配置的属性:十五、一个完整的例子<display:tablename="test"export="true"sort="list"pagesize=""><display:columnproperty="city"title="CITY"group=""sortable="true"headerClass="sortable"><display:columnproperty="project"title="PROJECT"group=""sortable="true"headerClass="sortable"><display:columnproperty="amount"title="HOURS"><display:columnproperty="task"title="TASK"><display:table>sort="list"对整个list进行排序导出数据到其他格式时group无效

职业精品

用户评论

0/200
    暂无评论

精彩专题

上传我的资料

热门资料

资料评价:

/11
0下载券 下载 加入VIP, 送下载券

意见
反馈

返回
顶部