Web开发设计:DisplayTag应用指南

2008-02-23 08:00:38来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net
  
  一、最简单的情况,未使用<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" />

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:深入剖析JSP和Servlet对中文的处理过程

下一篇:详细的 spring 入门实例讲解运用