﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-时光如水-文章分类-Tag</title><link>http://www.blogjava.net/qiqijava/category/5079.html</link><description>我心跳动</description><language>zh-cn</language><lastBuildDate>Sat, 03 Mar 2007 08:55:08 GMT</lastBuildDate><pubDate>Sat, 03 Mar 2007 08:55:08 GMT</pubDate><ttl>60</ttl><item><title>ValueList原理说明</title><link>http://www.blogjava.net/qiqijava/articles/46427.html</link><dc:creator>qiqijava</dc:creator><author>qiqijava</author><pubDate>Tue, 16 May 2006 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/qiqijava/articles/46427.html</guid><wfw:comment>http://www.blogjava.net/qiqijava/comments/46427.html</wfw:comment><comments>http://www.blogjava.net/qiqijava/articles/46427.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qiqijava/comments/commentRss/46427.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiqijava/services/trackbacks/46427.html</trackback:ping><description><![CDATA[
		<p>                            ValueList中四个主要的接口与实现类</p>
		<p>1. ValueListInfo 封装Map对象，含有排序、分页、聚焦和提交表单等相关信息<br />2. ValueListHandler接口，实现类：DefaultValueListHandlerImpl 它是ValueList中的核心类，其定义在配置文件中,调用getValueList方法返回ValueList对象<br />3. ValueList接口，实现类：DefaultListBackedValueList 它包含两个对象，1）域对象的结果集，2）ValueListInfo对象<br />4. ValueListAdapter接口，有以下几种实现<br /> ○ DefaultWrapperAdapter         jdbc操作的适配器<br /> ○ EventLogAdapter               日志操作的适配器<br /> ○ FileSystemAdapter             文件系统操作的适配器<br /> ○ HibernateAdapter              hibernate操作的适配器<br /> ○ MappingSqlQueryAdapter        iBATIS的sqlMap适配器<br /> <br />具体实现流程</p>
		<p>第一步：从请求中构造ValueListInfo对象，由帮助类ValueListRequestUtil实现<br /> 从请求中取得URL的参数和系统默认值来构造ValueListInfo对象<br /> <br />第二步：得到Adapter的实现类<br /> 调用getBean方法，从配置文件中取得ValueListHandler实现类，调用getValueList方法，得到实体key对应的Adapter，如：<br /> &lt;bean class="net.mlw.vlh.adapter.hibernate3.HibernateAdapter"&gt;<br />  &lt;property name="sessionFactory"&gt;&lt;ref bean="mySessionFactory"/&gt;&lt;/property&gt;<br />  &lt;property name="defaultNumberPerPage"&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;<br />  &lt;property name="defaultSortColumn"&gt;&lt;value&gt;messageIn.date&lt;/value&gt;&lt;/property&gt;<br />  &lt;property name="defaultSortDirection"&gt;&lt;value&gt;desc&lt;/value&gt;&lt;/property&gt;<br />  &lt;property name="hql"&gt;<br />  &lt;value&gt;<br />  from User AS vo<br />   /~certNumber: where vo.certNumber like {certNumber} ~/<br />   /~name: where vo.name like {name} ~/<br />   /~certHolder: where vo.certHolder like {certHolder} ~/<br />   /~groupName: where vo.group.name like {groupName} ~/<br />   /~sortColumn: ORDER BY vo.[sortColumn] [sortDirection]~/<br />  &lt;/value&gt;<br />  &lt;/property&gt;<br />  &lt;property name="defaultFocusPropertyObjectAlias"&gt;&lt;value&gt;vo&lt;/value&gt;&lt;/property&gt;<br />  &lt;property name="maxRowsForFocus"&gt;&lt;value&gt;160000&lt;/value&gt;&lt;/property&gt;  <br />  &lt;property name="removeEmptyStrings"&gt;&lt;value&gt;true&lt;/value&gt;&lt;/property&gt;<br /> &lt;/bean&gt;<br />第三步：构造ValueList对象，使用DefaultListBackedValueList实现类<br /> 用适配器取得结果集（如HibernateAdapter）,封装ValueList对象<br /> ValueList中包含两个对象，1）域对象的结果集，2）ValueListInfo对象（分页的相关息）<br /> <br />第四步：把ValueList对象放到WEB的作用域中</p>
		<p>HQL说明：主要通过迭代动态生成HQL语句<br />from User AS vo<br /> /~certNumber: where vo.certNumber like {certNumber} ~/           (1)<br /> /~name: where vo.name like {name} ~/                             (2)<br /> /~certHolder: where vo.certHolder like {certHolder} ~/           (3)<br /> /~groupName: where vo.group.name like {groupName} ~/             (4)<br /> /~sortColumn: ORDER BY vo.[sortColumn] [sortDirection]~/         (5)</p>
		<p>（1）如果ValueListInfo中包含certNumber变量，如certNumber=100，则vo.certNumber like=100，生成HQL=from User AS vo where vo.certNumber like=100；<br />        如果ValueListInfo中不包含certNumber变量，生成HQL=from User AS vo   (1)行由空白代替<br />其它以此类推<br />注意：传给HQL的每个变量都要单独占一行，就算是类似between and 的语句也要分两行写<br /></p>
<img src ="http://www.blogjava.net/qiqijava/aggbug/46427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiqijava/" target="_blank">qiqijava</a> 2006-05-16 16:15 <a href="http://www.blogjava.net/qiqijava/articles/46427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ValueList标签说明</title><link>http://www.blogjava.net/qiqijava/articles/23078.html</link><dc:creator>qiqijava</dc:creator><author>qiqijava</author><pubDate>Fri, 09 Dec 2005 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/qiqijava/articles/23078.html</guid><wfw:comment>http://www.blogjava.net/qiqijava/comments/23078.html</wfw:comment><comments>http://www.blogjava.net/qiqijava/articles/23078.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qiqijava/comments/commentRss/23078.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiqijava/services/trackbacks/23078.html</trackback:ping><description><![CDATA[<P><STRONG>一.标签说明</STRONG>：(整理一下valueList的标签api文档，做了简短说明,只列出常用标签和相关重要属性)</P>
<P><STRONG>1.vlh:root&nbsp; root标签做为所有vlh标签的根标签</STRONG>.<BR>&nbsp; 1)value&nbsp; 在给定的范围内，包含在ValueList或list的变量名. List的实例自动被DefaultListBackedValueList包装在ValueList中<BR>&nbsp; 2)id&nbsp; 如果有多个表被包含在一个request中，ID属性能区分每个表。id被追加到所有的parameters中。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：表ID=(blob)，那么分页参数中将包含?paggingColumn=firstName(bob)，没有ID指定时，使用默认ID。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当在WEB中使用ValueListHandlerHelper时，ID用来构建list中的信息，因此要在application中指定唯一的ID<BR>&nbsp; 3)url&nbsp;&nbsp; 返回的URL，在表生成后所有的连接自动生成，只有action标签可以被覆盖<BR>&nbsp;&nbsp; 例：&lt;vlh:root id="MyTable" value="list" url="userAction.do?" includeParameters="*" &gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所有的链接以 "?"起始. 结果像下面这样: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="userAction.do?param1=value1&amp;....&amp;paramN=valueN" &gt;<BR>&nbsp; 4)configName&nbsp; ValueListConfigBean 的id名. 它的名称被定义在spring的配置文件中,用来为表格配置风格.一般&nbsp; 情况我更愿意使用table的class属性配置风格。valueList为class也指定了三种风格classicLook、microsoftLook、simpleLook.是以三个properties文件形式提供的<BR>&nbsp; <BR><STRONG>2.vlh:row 这是一个迭代标签. 这个标签迭代在ValueList中对象的属性</STRONG><BR>&nbsp; 1）bean&nbsp; 在迭代标签上使用pageContext的key名<BR>&nbsp;&nbsp;&nbsp; 假设我们有一个类Player有getId方法 <BR>&nbsp;&lt;vlh:row bean="player"&gt; <BR>&nbsp;&nbsp; 使用EL语言，显示Player的id值 ${player.id}. <BR>&nbsp;&lt;/vlh:row&gt;<BR>&nbsp; 2)display&nbsp; 指定要显示的adpater名(在configuration bean中定义)，默认是html,还有cvs,excel等<BR><BR><STRONG>3.vlh:column&nbsp; 显示每一列的值<BR></STRONG>&nbsp; 例：&lt;vlh:column title="Id of Player" property="id" sortable="desc" emphasisPattern="1"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示列，标题为"Id of Player"，显示id属性的值，如果值中包含"1" ,将被高亮显示<BR>&nbsp; 1）sortable&nbsp; 是否排序. <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asc 升序排列. desc 降序排列<BR>&nbsp; 2）property&nbsp; 在adapter中得到javabean的属性名<BR>&nbsp; 3)&nbsp; groupKey&nbsp; 为列指定groupKey值，将使该列相同的数据合并，其余为空白<BR>&nbsp; 4)&nbsp; format&nbsp; 格式化number,java.util.date or Calendar类型数据。使用WEB浏览器的locale做为默认的locale<BR>&nbsp;&nbsp;&nbsp;&nbsp; 例：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:column format="#,###,##0.00" locale="ref to locale instance" .. &gt; 使用指定的locale. <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:column format="#,###,##0.00" &gt;使用浏览器的locale<BR>&nbsp; 5)&nbsp; title&nbsp; 指定列标题<BR>&nbsp; 6)&nbsp; emphasisPattern&nbsp; 这个模式能够高亮列的显示,它会在所有的分页中均高亮显示 <BR>&nbsp;&nbsp;&nbsp;&nbsp; 例：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:column title="playerid" property="id" sortable="desc" emphasisPattern="30" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id的值中含有30的列将被高亮显示<BR>&nbsp; 7)&nbsp; attributes&nbsp; 允许指定html属性<BR>&nbsp;&nbsp;&nbsp;&nbsp; 例：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:column title="lastname" property="lastname" sortable="desc" attributes="width='150'"/&gt;<BR><BR><STRONG>4.vlh:attribute 为整个table设定附加html属性.</STRONG> <BR>&nbsp;&nbsp; 使用在vlh:column 上的attributes属性只为header设置属性。而使用vlh:attribute标签将为所有的行设置属性<BR><BR><STRONG>5.vlh:paging&nbsp; 生成分页和焦点的标签</STRONG> <BR>&nbsp; &lt;vlh:paging showSummary="true" pages="3"&gt;&lt;c:out value="${page}"/&gt;&lt;/vlh:paging&gt; </P>
<P><STRONG>6.vlh:controls 为行添加指定的列<BR></STRONG>&nbsp;&nbsp; 1)title 列的标题名<BR><BR><STRONG>7.vlh:action&nbsp; 为每行的action中添加编辑、删除动作<BR></STRONG>&nbsp; 例：&lt;vlh:root url="baseUrl.do" &gt; <BR>&nbsp;&nbsp; &nbsp;&lt;vlh:controls titleKey="Control" &gt; <BR>&nbsp;&nbsp;&nbsp; &lt;vlh:action url="edit.jsp?" customParameters="&lt;%=customParams%&gt;"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用自定义的HashMap变量customParams，并做为参数到添加到"edit.jsp?"的url中. <BR>&nbsp; &nbsp;&nbsp;&lt;/vlh:controls&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/vlh:root&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 生成的url像这样 ..\edit.jsp?&amp;custumParam1=customParamValue1&amp;....&amp;customParamN=customParamValueN<BR>其中custumParam1...custumParamN是customParams中的key<BR><BR><STRONG>8.vlh:addParam&nbsp; 设定任意的参数到父标签，如root,action等</STRONG><BR>&nbsp; 例：为vlh:action添加参数<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:action url="\delete.do?" customParameters="&lt;%=customParams%&gt;"&gt; 这是生成的基本url ..\delete.do? <BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:addParam name="id" property="id" temp="true"/&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加如下参数到url中 &amp;ACTid="Row-Java-Bean.getId()"，如果temp值为true,添加ACTION_TEMP_PARAM 前缀到参数名中<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:addParam name="id" property="id" temp="false"/&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加如下参数到url中 &amp;id="Row-Java-Bean.getId()" ，temp值为false,不添加前缀<BR>&nbsp;&nbsp;&nbsp; &lt;vlh:addParam property="xyz" /&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加如下参数到url中 &amp;ACTxyz="javabean.getXyz()" ，temp值默认为true<BR>&nbsp;&nbsp;&nbsp; &lt;vlh:addParam name="OneStaticParam" value="OneStaticValue" temp="false"/&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加静态的url参数到url中 &amp;OneStaticParam="OneStaticValue" <BR>&nbsp;&nbsp;&nbsp; &lt;/vlh:action&gt; <BR>&nbsp; 例：为vlh:root添加参数<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:root url="?" customParameters="&lt;%=customParams%&gt;"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;vlh:addParam name="method" value="doView" temp="false"/&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加静态的url参数到url中,呈现结果：..\?method=doView <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/vlh:root&gt;</P>
<P><BR>&nbsp;</P><img src ="http://www.blogjava.net/qiqijava/aggbug/23078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiqijava/" target="_blank">qiqijava</a> 2005-12-09 10:13 <a href="http://www.blogjava.net/qiqijava/articles/23078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>displayTag学习摘要</title><link>http://www.blogjava.net/qiqijava/articles/20801.html</link><dc:creator>qiqijava</dc:creator><author>qiqijava</author><pubDate>Mon, 21 Nov 2005 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/qiqijava/articles/20801.html</guid><wfw:comment>http://www.blogjava.net/qiqijava/comments/20801.html</wfw:comment><comments>http://www.blogjava.net/qiqijava/articles/20801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiqijava/comments/commentRss/20801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiqijava/services/trackbacks/20801.html</trackback:ping><description><![CDATA[<P>当时想要这样一个标签，能实现分页、排序、过滤、搜索功能，且页面比较美观。先后学习了三个比较有名的标签：displayTag、eXtremeComponents、valueList。个人感觉：</P>
<P>display上手容易，功能简单，界面漂亮，不过功能比较有限。感觉最不爽的就是在一页上排好序后，再点击下一页后，排序就乱了。而且当数据量大时，它的排序会有问题</P>
<P>eXtremeComponents上手容易，操作烦索，界面一般，不过起码在排序上就没有displayTag的问题。数据量大时，它的排序也会有问题</P>
<P>valueList我认为最强大的标签，需要与spring结合使用，上手不易，界面漂亮，功能超强。目前没有发现任何不爽的地方。</P>
<P>先贴出display的心得，后续会贴出其它两个的心得</P><BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; displayTag学习摘要<BR>1.tableTag中name属性：值默认作用域：request<BR>&lt;display:table name="accList"&gt;<BR>如果作用域为session，则&lt;display:table name="sessionScope.accList"&gt;<BR>tableTag中指定ID属性会把该对象加入到pageContext对象中去。如ID="test"<BR>&lt;%int cate=((Role)pageContext.getAttribute("test")).getCategory();%&gt;<BR>生成表格的序列号 例如：&lt;display:table id="row" name="mylist"&gt;<BR>&lt;display:column title="序列号"&gt;&lt;%=pageContext.getAttribute("row_rowNum")%&gt;&lt;/display:column&gt;<BR>如行号：row_rowNum &lt;c:out value="${row_rowNum}"/&gt;<BR>firstName:row.firstName&nbsp;&nbsp; &lt;c:out value="${row.firstName}"/&gt;<BR>lastName: row.lastName&nbsp; 全部由ID来取得</P>
<P>2.限制页面显示的结果集数<BR>&nbsp;1)全部&lt;display:table name="accList" class="its" id="test"&gt;<BR>&nbsp;2)头5个&lt;display:table name="accList" class="its" id="test" length="5"&gt;<BR>&nbsp;3)从第二个开始，显示下5个&lt;display:table name="accList" class="its" id="test" offset="2" length="5"&gt;</P>
<P>3.包装器decorators,有行包装器(必须继承TableDecorator)和列包装器(必须实现ColumnDecorator)<BR>&nbsp; 在tableTag中显示list时，decorators中的方法会在list前调用，如果decorators实现类中有相关的getXXX()方法时，调用此方法，如果没有，则直接调用list<BR>&nbsp; 在columnTag中显示value时，decorators中的方法会先调用，(应该重用)</P>
<P>4.传递参数，有两种方式，<BR>&nbsp; 一。struts方式：有以下几个属性<BR>&nbsp; 1)href 基本的超连接<BR>&nbsp; 2)paramId 添加到url上的参数名<BR>&nbsp; &lt;display:column property="status" href="details.jsp" paramId="id" paramProperty="id" /&gt;<BR>&nbsp; 3)paramName 传递容器内的其它bean当作参数 如：request.setAttribute("testparam", "sendamail");<BR>&nbsp; &lt;display:column property="email" href="details.jsp" paramId="action" paramName="testparam" paramScope="request" /&gt;<BR>&nbsp; 4)paramScope 指定bean的作用域<BR>&nbsp; 二。decorators方式<BR>&nbsp; 类Wrapper方法：public String getLink1()<BR>&nbsp;{<BR>&nbsp;&nbsp;ListObject lObject= (ListObject)getCurrentRowObject();<BR>&nbsp;&nbsp;int lIndex= getListIndex();<BR>&nbsp;&nbsp;return "&lt;a href="details.jsp?index=" + lIndex + ""&gt;" + lObject.getId() + "&lt;/a&gt;";<BR>&nbsp;}标签：<BR>&nbsp;&lt;display:table name="sessionScope.details" decorator="org.displaytag.sample.Wrapper" &gt;<BR>&nbsp; &lt;display:column property="link1" title="ID" /&gt;<BR>&nbsp; &lt;display:column property="email" /&gt;<BR>&lt;/display:table&gt;</P>
<P>5.分页<BR>&nbsp; 指定属性:pagesize="10" 每页显示10条记录</P>
<P>6.排序<BR>&nbsp; 1）在list中封装的对象的属性要实现Comparable接口,(一般均实现了)<BR>&nbsp; 2) 在columnTag中指定sortable="true"<BR>&nbsp; 可指定默认排序的列 defaultsort="1" 数值为第几列默认排序 defaultorder="descending" 指定默认为降序</P>
<P>7.导出 支持下列格式：'html', 'xml', 'csv', and 'excel'.<BR>&nbsp; 属性：export="true",注意导出无效，当使用jsp:include or the RequestDispatcher<BR>&nbsp; &lt;display:column media="csv excel" title="URL" property="url"/&gt;<BR>&nbsp; 指定该url属性值只能在csv、excel中导出<BR>&nbsp; 需要指定export filter.</P>
<P>8.更改默认设置<BR>&nbsp; 1)通过&lt;display:setProperty name=... value=...&gt; 标签，可以覆盖一些默认设置<BR>&nbsp; 2)创建displaytag.properties文件，所有时区共用，建中文编码则创建displaytag_zh_cn.properties，放到类路径下,jar包内共有两个默认的属性文件TableTag.properties，message.properties</P>
<P>9其它<BR>&nbsp; 1)当多个表在一页显示时，每个表都想要有分页、排序、导出等功能时，只需为每个table指定一个不同的ID即可。<BR>&nbsp; 2)增加表头&lt;display:caption&gt;角色管理&lt;/display:caption&gt;<BR>&nbsp; 3)增加表尾&nbsp; &lt;display:footer&gt;&lt;tr&gt;&lt;td colspan="6" align="center" &gt;国瑞数码版权所有&lt;/td&gt;&lt;/tr&gt;&lt;/display:footer&gt;<BR>&nbsp; 4)http和email自动链接功能，指定autolink="true"<BR>&nbsp; 5)指定一列显示的最大长度，避免太长把表格变形 maxLength="10" style="whitespace: nowrap;"<BR>&nbsp; 6)当列的值为null，使用nulls="false"属性把null转为空白</P><img src ="http://www.blogjava.net/qiqijava/aggbug/20801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiqijava/" target="_blank">qiqijava</a> 2005-11-21 17:11 <a href="http://www.blogjava.net/qiqijava/articles/20801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eXtremeComponent学习摘要</title><link>http://www.blogjava.net/qiqijava/articles/20800.html</link><dc:creator>qiqijava</dc:creator><author>qiqijava</author><pubDate>Mon, 21 Nov 2005 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/qiqijava/articles/20800.html</guid><wfw:comment>http://www.blogjava.net/qiqijava/comments/20800.html</wfw:comment><comments>http://www.blogjava.net/qiqijava/articles/20800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qiqijava/comments/commentRss/20800.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qiqijava/services/trackbacks/20800.html</trackback:ping><description><![CDATA[这个标签只是简单的使用，简单列出一些关键点。因为急于学习valueList，这个写得比较简单。<BR>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eXtremeComponent学习摘要<BR>1. TableTag必须指定collection属性,值为bean名，它会在(page,request,session,application)中查找此bean,在table迭代显示列时，要通过bean在List中查找。在Web中传递的bean必须实现Serializable接口.<BR>例1.<BR>&lt;ec:table collection="presidents"&gt;<BR>&nbsp; &lt;ec:column property="firstName"/&gt;最通用的显示方式,调用getFirstName()<BR>&nbsp; &lt;ec:column property="lastName"/&gt;<BR>&nbsp;&nbsp;&nbsp; ${presidents.lastName}另一种方式，直接读取lastName属性,另一种用途如下显示<BR>&nbsp;&nbsp;&nbsp; 1)&lt;a href="<A href='http://goto.president.detail">${pagescope.presidents.lastname}</a'><FONT color=#666666>http://goto.president.detail"&gt;${pageScope.presidents.lastName}&lt;/a</FONT></A>&gt;<BR>&nbsp;&nbsp;&nbsp; 2)&lt;a href="<A href='http://goto.president.detail/?firstName=${pageScope.presidents.firstName}">${pageScope.presidents.lastName}</a'><FONT color=#666666>http://goto.president.detail?firstName=${pageScope.presidents.firstName}"&gt;${pageScope.presidents.lastName}&lt;/a</FONT></A>&gt;<BR>&nbsp; &lt;/ec:column&gt;<BR>&lt;/ec:table&gt;<BR>例2.<BR>&lt;ec:table <BR>&nbsp; collection="presidents" <BR>&nbsp; imagePath="${pageContext.request.contextPath}/images/*.gif"<BR>&nbsp; action="${pageContext.request.contextPath}/presidents.run" <BR>&nbsp; title="Presisent" 指定表格的标题<BR>&nbsp; filterable="false"过滤<BR>&nbsp; sortable="false"排序<BR>&nbsp; saveFilterSort="true"用户操作完排序、过滤后下次再返回时看到相同的结果。要求：在url的参数中指定useSessionFilterSort=true<BR>&nbsp; &gt;<BR>&nbsp; ...<BR>&lt;/ec:table&gt;所有的属性默认为全部打开。<BR>2.默认一页显示15行，rowsDisplayed属性指定一页显示的行数。如果设置值为0将显示所有行。也可以通过设置showPagination=false来显示所有行。在TableTag中可以设置一些样式(style)属性<BR>例3.<BR>&lt;ec:table <BR>&nbsp; collection="presidents" <BR>&nbsp; cellspacing="2" 表格有立体感<BR>&nbsp; cellpadding="0"<BR>&nbsp; border="0"<BR>&nbsp; width="80%"<BR>&nbsp; style=""指定内部样式<BR>&nbsp; styleClass=""分别指定css<BR>&nbsp; headerClass=""分别指定css<BR>&nbsp; /&gt;<BR>&nbsp; <BR>3.ColumnTag<BR>1)&lt;ec:column property="born" cell="date" parse="yyyy-MM-dd" format="MM/dd/yyyy"/&gt;<BR>当born值为String时，要把String--&gt;Date，需指定parse属性。format属性可对值格式化<BR>当born值为Date时，无需指定parse属性<BR>&lt;ec:column property="payroll" cell="currency" format="###,###,##0.00"/&gt;<BR>大部分的时间、日期、贷币均可被格式化<BR>2)可指定filterable，sortable属性，它们覆盖TableTag中的属性，只对指定的列进行过滤、排序。</P>
<P>4.Cell返回的每一列都是一个Object,它能被format,modify.Cell做为一个模板被缓存以便重复使用。<BR>使用流程：1)初始化Cell <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)getHtml()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)销毁全局变量等待再次使用<BR>&lt;ec:column property="firstName" cell="com.mycompany.cell.MyCell"/&gt;<BR>要使用自定义的Cell，只需要extend BaseCell或implements Cell接口即可，然后在columnTag中指定完全限定名。</P>
<P>5.ParameterTag<BR>默认会把所有的参数全部传递，如果当你需要locking down table时，可通过指定autoIncludeParameters=”false”取消自动传递参数，转而通过设置&lt;ec:parameter name=”foo” value=”${param.foo}”/&gt;来传递参数。</P>
<P>6.ExportTag<BR>可导出Excel、pdf、csv等格式，分页将无效，将把所有行全部导出。排序、过滤后的所有行将全部导出(排序、过滤有效)</P><img src ="http://www.blogjava.net/qiqijava/aggbug/20800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qiqijava/" target="_blank">qiqijava</a> 2005-11-21 17:10 <a href="http://www.blogjava.net/qiqijava/articles/20800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>