这几天学习这个标签的运用,只是刚刚入门,学习的过程中碰到了很多问题,问题就是网上的帖子10个八个都是一样的,然后出了一点问题就找半天,现在写一下自己学习中帮助自己的一点东西;
/*************引用下别人的帖子,并做下自己的修改和补充************************/
首先当然是要下载它的jar包了,这里可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包:apache的commons-lang和standard包,这些包在下载的压缩包的displaytag-examples-1.2.war都可以找到
在jsp页面做一个引用:
<%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>
引入样式表
<link rel="stylesheet" type="text/css" href="<%=path %>/css/screen.css">
<link rel="stylesheet" type="text/css" href="<%=path %>/css/displaytag.css">
如果没有引入的话,表格是不会出来的
<%
List test = new ArrayList( 6 );
test.add( "Test String 1" );
test.add( "Test String 2" );
test.add( "Test String 3" );
test.add( "Test String 4" );
test.add( "Test String 5" );
test.add( "Test String 6" );
request.setAttribute( "test", test );
%>
<display:table name="test" />// 显示test内容display tag会自动生成一个table
如果list是从控制层抛出来的,name可使用EL表达式表示
<display:table name="${test}" />
这是最简单的display tag的使用,我们可以给它加上样式等,也可以定义显示的列,下面的table显示复杂一些
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
<display:column property="id" title="ID" class="idcol"/>
<display:column property="name" />
<display:column property="email" />
<display:column property="description" title="Comments"/>
</display:table>
这里请各位新手注意,此时test已经不再是上述的List了,它已经改变了,见上所写,property="id",何来id如果还是继续执行您的jsp页面那注定要报错的,本人就是在这里卡了不少时间(自己太笨了),如果想让这段代码正常运行,那么您的List存放的内容是Object对象,对象有“id, name, email, description”这些属性。
如果想要给它加个链接也很简单,下面的代码给name加了连接,并附带id参数,email也自动连接到mailto:XXX
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
<display:column property="id" title="ID" class="idcol"/>
<display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/>
<display:column property="email" autolink="true"/>
<display:column property="description" title="Comments"/>
</display:table>
下面说明下常用的几个简单应用:
1、表格显示样式的定义
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)直接修改
C.可直接<display:column property="qz" title="权重" style="width:50px;" />
2、显示部分数据
显示开始五条数据:通过设定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>
3、对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"来直接连接
4.分组
分组只是需要在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>
注意:group的1,2 ,3相当于分组的优先级,必须从1开始不可跳数
上面的内容参考别人自己整理的,本人未全部实践,如果想要更深入的学习,请参考其他的帖子。