﻿<?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-渔人码头-文章分类-开源组件</title><link>http://www.blogjava.net/fisher/category/29661.html</link><description>天行健，君子以自强不息。地势坤，君子以厚德载物。</description><language>zh-cn</language><lastBuildDate>Wed, 21 May 2008 05:43:39 GMT</lastBuildDate><pubDate>Wed, 21 May 2008 05:43:39 GMT</pubDate><ttl>60</ttl><item><title>Struts2中的链接标签</title><link>http://www.blogjava.net/fisher/articles/201782.html</link><dc:creator>Fisher</dc:creator><author>Fisher</author><pubDate>Tue, 20 May 2008 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/fisher/articles/201782.html</guid><wfw:comment>http://www.blogjava.net/fisher/comments/201782.html</wfw:comment><comments>http://www.blogjava.net/fisher/articles/201782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fisher/comments/commentRss/201782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fisher/services/trackbacks/201782.html</trackback:ping><description><![CDATA[<div class="tit">Struts2中的链接标签</div>
<div class="date">2007年11月29日 星期四 12:56</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>为了使从一个页面中链接一个动态数据变得简单，</span><span>Struts2</span><span>框架提供了一系列的标签。</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>Struts2</span><span>标签的一种用法是创建链接到其他</span><span>Web</span><span>资源，特别是针对那些在本地应用中的资源。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><strong><span style="font-size: 14pt">1</span></strong><strong><span style="font-size: 14pt">．普通链接</span></strong></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>Web</span><span>程序中最普通的应用是链接到其他页面，下面看</span><span>Welcome.jsp</span><span>。</span></font></div>
            <table cellspacing="0" cellpadding="0" border="1">
                <tbody>
                    <tr>
                        <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top">
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;html&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;head&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp; </span>&lt;title&gt;Welcome&lt;/title&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp; </span>&lt;link href="&lt;s:url value="/css/tutorial.css"/&gt;" rel="stylesheet"</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>type="text/css"/&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/head&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;body&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;h3&gt;Commands&lt;/h3&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;ul&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp; </span>&lt;li&gt;&lt;a href="&lt;s:url action="Login_input"/&gt;"&gt;Sign On&lt;/a&gt;&lt;/li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp; </span>&lt;li&gt;&lt;a href="&lt;s:url action="Register"/&gt;"&gt;Register&lt;/a&gt;&lt;/li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/ul&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/body&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/html&gt;</font></span></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span style="font-size: 12pt">1.1</span><span style="font-size: 12pt">说明</span></font></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>1</span><span>．</span><span>&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此句表示导入</span><span>struts</span><span>标签，并以</span><span>s</span><span>为前缀。即以</span><span>s</span><span>为前缀的标签均来自</span><span>struts</span><span>标签库。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>2</span><span>．</span><span>&lt;link href="&lt;s:url value="/css/tutorial.css"/&gt;" rel="stylesheet" type="text/css"/&gt;</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此句表示利用</span><span>url</span><span>标签导入一个路径，链接到一个文件，注意此路径为项目下的绝对路径。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>3</span><span>．</span><span>&lt;a href="&lt;s:url action="Login_input"/&gt;"&gt;Sign On&lt;/a&gt;</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此句表示利用</span><span>url</span><span>标签链接到一个</span><span>action</span><span>。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span style="font-size: 12pt">1.2</span><span style="font-size: 12pt">注册</span><span style="font-size: 12pt">action</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>我们在</span><span>struts.xml</span><span>中注册一个</span><span>action</span><span>来显示</span><span>welcome.jsp</span><span>。</span></font></div>
            <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
                <tbody>
                    <tr>
                        <td valign="top">
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;action name="Welcome"&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result&gt;/example/Welcome.jsp&lt;/result&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/action&gt;</font></span></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>注意此</span><span>action</span><span>注册在</span><span>package example</span><span>下，所以在地址栏中敲入</span><span>http://localhost:8080/StrutsHelloWorld/example/Welcome.action</span><span>（</span><span>StrutsHelloWorld</span><span>是</span><span>project</span><span>名），会导向到Welcome.jsp。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"></font></span></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><strong><span style="font-size: 14pt">2</span></strong><strong><span style="font-size: 14pt">．使用通配符</span></strong></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>对于上面的</span><span>action</span><span>注册，我们也可以用下面的语句代替。</span></font></div>
            <table cellspacing="0" cellpadding="0" border="1">
                <tbody>
                    <tr>
                        <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; background-color: transparent" valign="top">
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;action name="*"&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result&gt;/example/{1}.jsp&lt;/result&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/action&gt;</font></span></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此句的意思是，如果在没有找到匹配的</span><span>action</span><span>名称的情况下，默认调用</span><span>action</span><span>名称</span><span>.jsp</span><span>。第一句中星号指任意，而第二句中</span><span>{1}</span><span>指代第一句中星号指代的内容。</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span><br />
            &nbsp;&nbsp;&nbsp; 举个例子，如果在地址栏中敲入</span><span>http://localhost:8080/StrutsHelloWorld/example/1.action</span><span>，则系统查找</span><span>struts.xml</span><span>，发现没有</span><span>name</span><span>为</span><span>1</span><span>的</span><span>action</span><span>，即最后调用</span><span>name</span><span>为星号的这个</span><span>action</span><span>，根据此</span><span>action</span><span>，将输出</span><span>/example/1.jsp</span><span>。</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>或者读者可以直接点击</span><span>Welcome.jsp</span><span>中的两个超链接，系统将会报错找不到</span><span>Login_input.jsp</span><span>和</span><span>Register.jsp</span><span>。因为这两个</span><span>action</span><span>还没有注册，也没有相应的</span><span>jsp</span><span>文件。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><strong><span style="font-size: 14pt">3</span></strong><strong><span style="font-size: 14pt">．带参数的链接</span></strong></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>超链接后面带有参数大家不会陌生，诸如</span><span>http://www.apache.com/?language=ch</span><span>。这个链接后面带有一个</span><span>language</span><span>参数，其值为</span><span>ch</span><span>。你可以通过</span><span>request.getParameter(&#8220;language&#8221;)</span><span>找到参数值。下面演示在</span><span>struts2</span><span>中如何设置带参数的链接。看</span><span>HelloWorld.jsp</span><span>。</span></font></div>
            <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
                <tbody>
                    <tr>
                        <td valign="top" width="628">
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;html&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;head&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;title&gt;Hello World!&lt;/title&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/head&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;body&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;h2&gt;&lt;s:property value="message" /&gt;&lt;/h2&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;h3&gt;Languages&lt;/h3&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;ul&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:url id="url" action="HelloWorld"&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:param name="request_locale"&gt;en&lt;/s:param&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/s:url&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:a href="%{url}"&gt;English&lt;/s:a&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:url id="url" action="HelloWorld"&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:param name="request_locale"&gt;es&lt;/s:param&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/s:url&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:a href="%{url}"&gt;Espanol&lt;/s:a&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/li&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/ul&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/body&gt;</font></span></div>
                        <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;/html&gt;</font></span></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span style="font-size: 12pt"><br />
            3.1</span><span style="font-size: 12pt">说明</span></font></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>1</span><span>．</span><span>&lt;s:url id="url" action="HelloWorld"&gt;</span></font></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;s:param name="request_locale"&gt;en&lt;/s:param&gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 15.75pt"><span><font size="2">&lt;/s:url&gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此段表示设置一个</span><span>url</span><span>标签指向名为</span><span>HelloWorld</span><span>的</span><span>action</span><span>，此标签带一个</span><span>id</span><span>取名为</span><span>url</span><span>，后面会用到。带一个参数</span><span>request_locale</span><span>，其值为</span><span>en</span><span>。</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span>2</span><span>．</span><span>&lt;s:a href="%{url}"&gt;English&lt;/s:a&gt;</span></font></div>
            <div style="margin: 0cm 0cm 0pt; text-indent: 21pt"><font size="2"><span>此句用到了</span><span>struts2</span><span>的超链接标签，连接的地址即为</span><span>1</span><span>中</span><span>url</span><span>，点击</span><span>English</span><span>，发出的信息为：</span><span>http://localhost:8080/StrutsHelloWorld/example/HelloWorld.action</span><span>？</span><span>request_locale=en</span></font></div>
            <div style="margin: 0cm 0cm 0pt"></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"></font></span></div>
            <div style="margin: 0cm 0cm 0pt"><font size="2"><span style="font-size: 12pt">3.2</span><span style="font-size: 12pt">注册</span><span style="font-size: 12pt">action</span><span style="font-size: 12pt">到</span><span style="font-size: 12pt">struts.xml</span></font></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2">&lt;struts&gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;package name="example" namespace="/example"</font></span></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>extends="struts-default"&gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;action name="HelloWorld" &gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;result&gt;/example/HelloWorld.jsp&lt;/result&gt;</font></span></div>
            <div style="margin: 0cm 0cm 0pt"><span><font size="2"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/action&gt;</font></span></div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/fisher/aggbug/201782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fisher/" target="_blank">Fisher</a> 2008-05-20 22:58 <a href="http://www.blogjava.net/fisher/articles/201782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DisplayTag1.1用法记录 </title><link>http://www.blogjava.net/fisher/articles/182311.html</link><dc:creator>Fisher</dc:creator><author>Fisher</author><pubDate>Tue, 26 Feb 2008 14:06:00 GMT</pubDate><guid>http://www.blogjava.net/fisher/articles/182311.html</guid><wfw:comment>http://www.blogjava.net/fisher/comments/182311.html</wfw:comment><comments>http://www.blogjava.net/fisher/articles/182311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fisher/comments/commentRss/182311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fisher/services/trackbacks/182311.html</trackback:ping><description><![CDATA[1、直接使用column的format属性，进行格式化输出。<br />
<p>You can use any valid <code>java.text.MessageFormat</code> pattern in the <code>format</code> attribute. Sorting will be based on the original object, not on the formatted String.</p>
<p>Note that errors due to an invalid pattern/object combination (for example trying to format a String like a number) will not be rethrown. Instead, an error log will be written and the original unformatted object displayed.</p>
<p>You can also use a <code>format</code> pattern along with column decorators (the pattern will be applied after the decoration).</p>
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0,0,0)">&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">display:table&nbsp;</span><span style="color: rgb(255,0,0)">name</span><span style="color: rgb(0,0,255)">="test"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">display:column&nbsp;</span><span style="color: rgb(255,0,0)">property</span><span style="color: rgb(0,0,255)">="id"</span><span style="color: rgb(255,0,0)">&nbsp;title</span><span style="color: rgb(0,0,255)">="ID"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">display:column&nbsp;</span><span style="color: rgb(255,0,0)">property</span><span style="color: rgb(0,0,255)">="email"</span><span style="color: rgb(255,0,0)">&nbsp;format</span><span style="color: rgb(0,0,255)">="email&nbsp;is&nbsp;{0}"</span><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">display:column&nbsp;</span><span style="color: rgb(255,0,0)">property</span><span style="color: rgb(0,0,255)">="date"</span><span style="color: rgb(255,0,0)">&nbsp;format</span><span style="color: rgb(0,0,255)">="{0,date,dd-MM-yyyy}"</span><span style="color: rgb(255,0,0)">&nbsp;sortable</span><span style="color: rgb(0,0,255)">="true"</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">display:column&nbsp;</span><span style="color: rgb(255,0,0)">property</span><span style="color: rgb(0,0,255)">="money"</span><span style="color: rgb(255,0,0)">&nbsp;format</span><span style="color: rgb(0,0,255)">="{0,number,0,000.00}&nbsp;$"</span><span style="color: rgb(255,0,0)">&nbsp;sortable</span><span style="color: rgb(0,0,255)">="true"</span><span style="color: rgb(0,0,255)">/&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">display:table</span><span style="color: rgb(0,0,255)">&gt;</span></div>
<img src ="http://www.blogjava.net/fisher/aggbug/182311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fisher/" target="_blank">Fisher</a> 2008-02-26 22:06 <a href="http://www.blogjava.net/fisher/articles/182311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DisplayTag笔记（转）</title><link>http://www.blogjava.net/fisher/articles/181550.html</link><dc:creator>Fisher</dc:creator><author>Fisher</author><pubDate>Sat, 23 Feb 2008 01:08:00 GMT</pubDate><guid>http://www.blogjava.net/fisher/articles/181550.html</guid><wfw:comment>http://www.blogjava.net/fisher/comments/181550.html</wfw:comment><comments>http://www.blogjava.net/fisher/articles/181550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fisher/comments/commentRss/181550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fisher/services/trackbacks/181550.html</trackback:ping><description><![CDATA[<h3 class="entry-header">DisplayTag笔记</h3>
<div class="entry-content">
<div class="entry-body">本文介绍DisplayTag的一些使用方法。摘自[http://hongyu0809.spaces.msn.com/PersonalSpace.aspx]<br />
<div>DisplayTag 基本介绍</div>
<div>DisplayTag是一个非常好用的表格显示标签，适合MVC模式，<br />
其主页在<a href="http://displaytag.sourceforge.net/"><font color="#8d4404">http://displaytag.sourceforge.net</font></a>。<br />
在这里可以下载displaytag-1.0.jar<br />
同时需要一下包文件：<br />
jstl.jar<br />
standard.jar<br />
commons-lang-2.0.jar<br />
commons-collections.jar<br />
commons-beanutils.jar<br />
crimson.jar<br />
gnujaxp.jar<br />
nekohtml.jar(org.cyberneko.html.parsers.DOMFragmentParser等)<br />
xerces-2.4.0.jar(org.apache.html.dom.HTMLDocumentImpl等)<br />
poi-2.5.1-final-20040804.jar<br />
然后把对应的jar文件copy到WEB-INF/lib中.</div>
<div>DisplayTag的使用：</div>
<div>＜display:table id="pres" name="${pagedData.data}" sort="list" <br />
styleClass="list" export="true"<br />
requestURI="${request.contextPath}" pagesize="10" defaultsort="3"＞</div>
<div>name是要展现的集合数据.<br />
id:在&lt;display:table/&gt;里增加了id属性，就在page context里创建了一个隐含对象，指向List里的当前对象，<br />
&nbsp;所以可以通过(ListObject)pageContext.getAttribute("id")来捕获这个对象。<br />
&nbsp;同时还创建了一个id_rowNum对象，<br />
&nbsp;可通过pageContext.getAttribute("testit_rowNum")来捕获，它仅仅代表当前行的行数。<br />
sort&nbsp;&nbsp;&nbsp; &nbsp;表示整个list被排序.<br />
pagesize&nbsp;&nbsp;&nbsp;表示每页所要展示的数.<br />
defaultsort&nbsp;&nbsp;&nbsp;表示默认是按第几列排序的，注意这里是以1开始计数的,默认从第一列开始排序.<br />
defaultorder &nbsp;&nbsp;&nbsp;指定排序方式，defaultorder="descending" 指定默认为降序<br />
styleClass &nbsp;&nbsp;&nbsp;指定所要应用的样式.<br />
requestURI </div>
<div>＜display:caption＞使用displayTag示例＜/display:caption＞<br />
display:caption标记中间的字符串是用来放到表格上面的标题.</div>
<div>＜display:column property="firstName" title="First Name" sortable="true" export="true"/＞<br />
display:column标记指定了每列的属性.<br />
property&nbsp;&nbsp;&nbsp;对应List里对象的属性（它是用getXXX()方法获取）<br />
title&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;对应表格表头里的列名<br />
export="true"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导出文件时导出该列<br />
sortable="true"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定该列可进行排序</div>
<div>分类样板说明如下：<br />
　　<br />
　　一、最简单的情况，未使用&lt;display:column/&gt;标签<br />
　　<br />
　　&lt;%request.setAttribute( "test", new ReportList(6) );%&gt;<br />
　　&lt;display:table name="test" /&gt;<br />
　　<br />
　　标签遍历List里的每一个对象，并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。<br />
　　<br />
　　二、使用&lt;display:column/&gt;标签的情况<br />
　　<br />
　　&lt;display:table name="test"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="name" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;display:column property="description" title="Comments"/&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　property对应List里对象的属性（用getXXX()方法取得），title则对应表格表头里的列名。定义列有两种方式：<br />
　　<br />
　　A、&lt;display:column property="email" /&gt;<br />
　　<br />
　　使用&lt;display:column/&gt;标签里的property属性来定义<br />
　　<br />
　　B、&lt;display:column title="email"&gt;email@it.com&lt;/display:column&gt;<br />
　　<br />
　　在&lt;display:column/&gt;标签体里增加内容，可以是常量，也可以用其他标签等等<br />
　　<br />
　　两种方式比较，用property属性来定义更加快速和利于排序。<br />
　　<br />
　　三、表格显示样式的定义<br />
　　<br />
　　A、在&lt;display:table/&gt;和&lt;display:column/&gt;标签里指定标准的html属性，烦琐<br />
　　<br />
　　B、修改样式表<br />
　　&lt;display:table name="test" class="mars"&gt;<br />
　　&lt;display:column property="id" title="ID" class="idcol"/&gt;<br />
　　&lt;display:column property="name" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" class="tableCellError" /&gt;<br />
　　&lt;display:column property="description" title="Comments"/&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　通过class属性来指定所要应用的样式。<br />
　　<br />
　　四、标签取得数据的数据源<br />
　　<br />
　　有四种范围<br />
　　<br />
　　pageScope<br />
　　requestScope (默认)　&lt;display:table name="test2" &gt;&nbsp; 相当于request.getAttribute( "test2"））<br />
　　sessionScope　&lt;display:table name="sessionScope.holder.list" &gt; 注意，这里要指定范围，非默认<br />
　　applicationScope<br />
　　<br />
　　五、通过增加id属性创建隐含的对象<br />
　　<br />
　　&lt;display:table name="test" id="testit"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="name" /&gt;<br />
　　&lt;display:column title="static value"&gt;static&lt;/display:column&gt;<br />
　　&lt;display:column title="row number (testit_rowNum)"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;%=pageContext.getAttribute("testit_rowNum")%&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/display:column&gt;<br />
　　&lt;display:column title="((ListObject)testit).getMoney()"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;%=((ListObject)pageContext.getAttribute("testit")).getMoney()%&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/display:column&gt;<br />
　　&lt;/display:table&gt;<br />
&nbsp;&nbsp;&nbsp; 在&lt;display:table/&gt;里增加了id属性，就在page context里创建了一个隐含对象，<br />
　　可以通过(ListObject)pageContext.getAttribute("id")来捕获这个对象。<br />
&nbsp;&nbsp;&nbsp; 同时还创建了一个id_rowNum对象，同样，<br />
&nbsp;&nbsp;&nbsp; 可通过pageContext.getAttribute("testit_rowNum")来捕获，它仅仅代表当前行的行数。<br />
　　<br />
　　有了这两个隐含对象，就可以通过其他标签来访问，例如Jstl:<br />
　　<br />
　　&lt;display:table id="row" name="mylist"&gt;<br />
　　&lt;display:column title="row number" &gt;<br />
　　&lt;c:out value="${row_rowNum}"/&gt;<br />
　　&lt;/display:column&gt;<br />
　　&lt;display:column title="name" &gt;<br />
　　&lt;c:out value="${row.first_name}"/&gt;<br />
　　&lt;c:out value="${row.last_name}"/&gt;<br />
　　&lt;/display:column&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　六、显示部分数据<br />
　　<br />
　　显示开始五条数据：通过设定length属性<br />
　　<br />
　　&lt;display:table name="test" length="5"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　显示第三到第八条数据：通过设定offset和length属性<br />
　　<br />
　　&lt;display:table name="test" offset="3" length="5"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　七、对email和url地址的直接连接<br />
　　<br />
　　&lt;display:table name="test" &gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="email" autolink="true" /&gt;<br />
　　&lt;display:column property="url" autolink="true" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　如果要显示的对象里包含email和url地址，则可以在display:column里直接设定autolink="true"来直接连接<br />
　　<br />
　　八、使用装饰模式转换数据显示（写自己的 decorator ）<br />
　　<br />
　　A、对整个表格应用decorator<br />
　　<br />
　　&lt;display:table name="test" decorator="org.displaytag.sample.Wrapper" &gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;display:column property="date" /&gt;<br />
　　&lt;display:column property="money" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　org.displaytag.sample.Wrapper即自己写的decorator，它要继承TableDecorator类，看看它的一个方法：<br />
　　public String getMoney()<br />
　　{<br />
　　return this.moneyFormat.format(((ListObject) this.getCurrentRowObject()).getMoney());<br />
　　}<br />
　　<br />
　　很明显，它通过父类的getCurrentRowObject()方法获得当前对象，然后对其getMoney()方法进行'油漆'<br />
　　<br />
　　B、对单独的column应用decorator<br />
　　<br />
　　&lt;display:table name="test"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;display:column property="date" decorator="org.displaytag.sample.LongDateWrapper" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　org.displaytag.sample.LongDateWrapper要实现ColumnDecorator接口，它的方法：<br />
　　public final String decorate(Object columnValue)<br />
　　{<br />
　　Date date = (Date) columnValue;<br />
　　return this.dateFormat.format(date);<br />
　　}<br />
　　<br />
　　显然，它获得不了当前对象（因为它实现的是接口），仅仅是获得该对象的columnValue，然后'油漆'<br />
　　<br />
　　九、创建动态连接<br />
　　<br />
　　有两种方法创建动态连接：<br />
　　<br />
　　A、在&lt;display:column/&gt;里通过增加href、paramId、paramName、paramScope、paramProperty属性<br />
　　<br />
　　href　　　　　　 基本的URL 地址<br />
　　paramId　　　　　加在URL 地址后的参数名称<br />
　　paramName　　　　数据bean的名称，一般为null（即使用当前List里的对象）<br />
　　paramScope　　　 数据bean的范围，一般为null<br />
　　paramProperty　　数据bean的属性名称，用来填充URL 地址后的参数值<br />
　　&lt;display:table name="sessionScope.details"&gt;<br />
　　&lt;display:column property="id" title="ID" href="details.jsp" paramId="id" /&gt;<br />
　　&lt;display:column property="email" href="details.jsp" paramId="action" paramName="testparam" paramScope="request" /&gt;<br />
　　&lt;display:column property="status" href="details.jsp" paramId="id" paramProperty="id" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　这种方法简便直接，但缺点是无法产生类似details.jsp?id=xx&amp;action=xx的复合URL<br />
　　<br />
　　B、应用decorator 创建动态连接：<br />
　　<br />
　　&lt;display:table name="sessionScope.details" decorator="org.displaytag.sample.Wrapper" &gt;<br />
　　&lt;display:column property="link1" title="ID" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="link2" title="Actions" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　org.displaytag.sample.Wrapper里的方法：<br />
　　public String getLink1()<br />
　　{<br />
　　ListObject lObject= (ListObject)getCurrentRowObject();<br />
　　int lIndex= getListIndex();<br />
　　return "&lt;a href=\"details.jsp?index=" + lIndex + "\"&gt;" + lObject.getId() + "&lt;/a&gt;";<br />
　　}<br />
　　<br />
　　public String getLink2()<br />
　　{<br />
　　ListObject lObject= (ListObject)getCurrentRowObject();<br />
　　int lId= lObject.getId();<br />
　　<br />
　　return "&lt;a href=\"details.jsp?id=" + lId<br />
　　+ "&amp;action=view\"&gt;View&lt;/a&gt; | "<br />
　　+ "&lt;a href=\"details.jsp?id=" + lId<br />
　　+ "&amp;action=edit\"&gt;Edit&lt;/a&gt; | "<br />
　　+ "&lt;a href=\"details.jsp?id=" + lId<br />
　　+ "&amp;action=delete\"&gt;Delete&lt;/a&gt;";<br />
　　}<br />
　　<br />
　　十、分页<br />
　　<br />
　　实现分页非常的简单，增加一个pagesize属性指定一次想显示的行数即可<br />
　　<br />
　　&lt;display:table name="sessionScope.test" pagesize="10"&gt;<br />
　　&lt;display:column property="id" title="ID" /&gt;<br />
　　&lt;display:column property="name" /&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　十一、排序<br />
　　<br />
　　排序实现也是很简单，在需要排序的column里增加sortable="true"属性，headerClass="sortable"仅仅是<br />
　　<br />
　　指定显示的样式。column里的属性对象要实现Comparable接口，如果没有的话可以应用decorator<br />
　　<br />
　　defaultsort="1"　　　　　　　默认第一个column排序<br />
　　defaultorder="descending"　　默认递减排序<br />
　　&lt;display:table name="sessionScope.stest" defaultsort="1" defaultorder="descending"&gt;<br />
　　&lt;display:column property="id" title="ID" sortable="true" headerClass="sortable" /&gt;<br />
　　&lt;display:column property="name" sortable="true" headerClass="sortable"/&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" sortable="true" headerClass="sortable"/&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　注意的是，当同时存在分页时排序仅仅针对的是当前页面，而不是整个List都进行排序<br />
　　<br />
　　十二、column 分组<br />
　　<br />
　　分组只是需要在column里增加group属性<br />
　　<br />
　　&lt;display:table name="test" class="simple"&gt;<br />
　　&lt;display:column property="city" title="CITY" group="1"/&gt;<br />
　　&lt;display:column property="project" title="PROJECT" group="2"/&gt;<br />
　　&lt;display:column property="amount" title="HOURS"/&gt;<br />
　　&lt;display:column property="task" title="TASK"/&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　十三、导出数据到其他格式（页面溢出filter??）<br />
　　<br />
　　在&lt;display:table/&gt;里设定export="true"<br />
　　<br />
　　在&lt;display:column/&gt;里设定media="csv excel xml pdf" 决定该字段在导出到其他格式时被包不包含，不设定则都包含<br />
　　<br />
　　&lt;display:setProperty name="export.csv" value="false" /&gt;<br />
　　<br />
　　决定该种格式能不能在页面中导出<br />
　　<br />
　　&lt;display:table name="test" export="true" id="currentRowObject"&gt;<br />
　　&lt;display:column property="id" title="ID"/&gt;<br />
　　&lt;display:column property="email" /&gt;<br />
　　&lt;display:column property="status" /&gt;<br />
　　&lt;display:column property="longDescription" media="csv excel xml pdf" title="Not On HTML"/&gt;<br />
　　&lt;display:column media="csv excel" title="URL" property="url"/&gt;<br />
　　&lt;display:setProperty name="export.pdf" value="true" /&gt;<br />
　　&lt;display:setProperty name="export.csv" value="false" /&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　十四、配置属性，覆盖默认<br />
　　<br />
　　两种方法：<br />
　　<br />
　　A、在程序classpath下新建displaytag.properties文件所有时区共用，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建中文编码则创建displaytag_zh_CN.properties，放到类路径下,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar包内共有两个默认的属性文件TableTag.properties，message.properties</div>
<div>　　B、对于单个表格，应用&lt;display:setProperty&gt;标签(&lt;display:setProperty name=... value=...&gt;)</div>
<div>　　十五、一个完整的例子<br />
　　<br />
　　&lt;display:table id="test" name="${test}" export="true" sort="list" pagesize="10"&gt;<br />
　　&lt;display:column property="city" title="城市" group="1" sortable="true" headerClass="sortable"/&gt;<br />
　　&lt;display:column property="name" title="名字" group="2" sortable="true" headerClass="sortable"/&gt;<br />
　　&lt;display:column property="age" title="年龄"/&gt;<br />
　　&lt;/display:table&gt;<br />
　　<br />
　　sort="list" 对整个list进行排序</div>
<div>&nbsp;&nbsp; 十六 其它<br />
&nbsp; <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;HY示例&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转为空白 <br />
&nbsp; 7)&lt;display:setProperty name="export.excel.filename" value="test.xls"/&gt;设置导出excel的文件名<br />
&nbsp; 8)&lt;display:setProperty name="basic.show.header" value="false"/&gt; 设置不显示表头<br />
&nbsp; 9)在displaytag.properties里修改paging.banner.item_name=记录后，出现中文显示乱码问题，<br />
&nbsp; 解决办法：<br />
&nbsp; org.displaytag.properties.TableProperties<br />
&nbsp; 修改<br />
&nbsp; private String getProperty(String key)<br />
&nbsp; {<br />
&nbsp; return this.properties.getProperty(key);<br />
&nbsp; }<br />
&nbsp; 为<br />
&nbsp; private String getProperty(String key)<br />
&nbsp;{<br />
&nbsp;String s = null;<br />
&nbsp;try {<br />
&nbsp;s = new String(this.properties.getProperty(key).getBytes("8859_1"), "GBK");<br />
&nbsp;}catch(Exception e) {<br />
&nbsp;s = null;<br />
&nbsp;}<br />
&nbsp;return s;<br />
&nbsp;}<br />
&nbsp;10)displaytag导出excel文件中文乱码的解决办法<br />
&nbsp; 修改org.displaytag.export.ExcelView.java<br />
&nbsp; public String getMimeType()<br />
&nbsp; {<br />
&nbsp;&nbsp; return "application/vnd.ms-excel;charset=GB2312";<br />
&nbsp; }<br />
&nbsp;十七 总结<br />
&nbsp; 我自己使用过程中，遇到显示当前页数，页总数等文字信息为英文的问题，<br />
&nbsp; 需要把displaytag_zh_CN.properties，放到类路径下就可以了。</div>
</div>
</div>
   <img src ="http://www.blogjava.net/fisher/aggbug/181550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fisher/" target="_blank">Fisher</a> 2008-02-23 09:08 <a href="http://www.blogjava.net/fisher/articles/181550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>displayTag学习摘要（转）</title><link>http://www.blogjava.net/fisher/articles/181549.html</link><dc:creator>Fisher</dc:creator><author>Fisher</author><pubDate>Sat, 23 Feb 2008 01:06:00 GMT</pubDate><guid>http://www.blogjava.net/fisher/articles/181549.html</guid><wfw:comment>http://www.blogjava.net/fisher/comments/181549.html</wfw:comment><comments>http://www.blogjava.net/fisher/articles/181549.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fisher/comments/commentRss/181549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fisher/services/trackbacks/181549.html</trackback:ping><description><![CDATA[<strong>1.tableTag中name属性：值默认作用域：request</strong><br />
&lt;display:table&nbsp;name="accList"&gt;<br />
如果作用域为session，则&lt;display:table&nbsp;name="sessionScope.accList"&gt;<br />
tableTag中指定ID属性会把该对象加入到pageContext对象中去。如ID="test"<br />
&lt;%int&nbsp;cate=((Role)pageContext.getAttribute("test")).getCategory();%&gt;<br />
生成表格的序列号&nbsp;例如：&lt;display:table&nbsp;id="row"&nbsp;name="mylist"&gt;<br />
&lt;display:column&nbsp;title="序列号"&gt;&lt;%=pageContext.getAttribute("row_rowNum")%&gt;&lt;/display:column&gt;<br />
如行号：row_rowNum&nbsp;&lt;c:out&nbsp;value="${row_rowNum}"/&gt;<br />
firstName:row.firstName&nbsp;&nbsp;&nbsp;&lt;c:out&nbsp;value="${row.firstName}"/&gt;<br />
lastName:&nbsp;row.lastName&nbsp;&nbsp;全部由ID来取得<br />
<br />
<strong>2.限制页面显示的结果集数</strong><br />
1)全部&lt;display:table&nbsp;name="accList"&nbsp;class="its"&nbsp;id="test"&gt;<br />
2)头5个&lt;display:table&nbsp;name="accList"&nbsp;class="its"&nbsp;id="test"&nbsp;length="5"&gt;<br />
3)从第二个开始，显示下5个&lt;display:table&nbsp;name="accList"&nbsp;class="its"&nbsp;id="test"&nbsp;offset="2"&nbsp;length="5"&gt;<br />
<br />
<strong>3.包装器decorators,有行包装器(必须继承TableDecorator)和列包装器(必须实现ColumnDecorator)</strong><br />
&nbsp;&nbsp;在tableTag中显示list时，decorators中的方法会在list前调用，如果decorators实现类中有相关的getXXX()方法时，调用此方法，如果没有，则直接调用list<br />
&nbsp;&nbsp;在columnTag中显示value时，decorators中的方法会先调用，(应该重用)<br />
<br />
<strong>4.传递参数，有两种方式，</strong><br />
&nbsp;&nbsp;一。struts方式：有以下几个属性<br />
&nbsp;&nbsp;1)href&nbsp;基本的超连接<br />
&nbsp;&nbsp;2)paramId&nbsp;添加到url上的参数名<br />
&nbsp;&nbsp;&lt;display:column&nbsp;property="status"&nbsp;href="details.jsp"&nbsp;paramId="id"&nbsp;paramProperty="id"&nbsp;/&gt;<br />
&nbsp;&nbsp;3)paramName&nbsp;传递容器内的其它bean当作参数&nbsp;如：request.setAttribute("testparam",&nbsp;"sendamail");<br />
&nbsp;&nbsp;&lt;display:column&nbsp;property="email"&nbsp;href="details.jsp"&nbsp;paramId="action"&nbsp;paramName="testparam"&nbsp;paramScope="request"&nbsp;/&gt;<br />
&nbsp;&nbsp;4)paramScope&nbsp;指定bean的作用域<br />
&nbsp;&nbsp;二。decorators方式<br />
&nbsp;&nbsp;类Wrapper方法：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getLink1()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_32_161_Open_Image" onclick="this.style.display='none'; Codehighlighter1_32_161_Open_Text.style.display='none'; Codehighlighter1_32_161_Closed_Image.style.display='inline'; Codehighlighter1_32_161_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_32_161_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_32_161_Closed_Text.style.display='none'; Codehighlighter1_32_161_Open_Image.style.display='inline'; Codehighlighter1_32_161_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_32_161_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_32_161_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ListObject&nbsp;lObject</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(ListObject)getCurrentRowObject();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;lIndex</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getListIndex();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;&nbsp;lObject.getId();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<br />
<pre class="overflow">&nbsp;<br />
标签：<br />
</pre>
<pre class="overflow">&lt;display:table&nbsp;name="sessionScope.details"&nbsp;decorator="org.displaytag.sample.Wrapper"&nbsp;&gt;<br />
&nbsp;&nbsp;&lt;display:column&nbsp;property="link1"&nbsp;title="ID"&nbsp;/&gt;<br />
&nbsp;&nbsp;&lt;display:column&nbsp;property="email"&nbsp;/&gt;<br />
&lt;/display:table&gt;</pre>
<br />
<br />
<strong>5.分页</strong><br />
&nbsp;&nbsp;指定属性:pagesize="10"&nbsp;每页显示10条记录<br />
<br />
<strong>6.排序</strong><br />
1)在list中封装的对象的属性要实现Comparable接口,(一般均实现了)<br />
2)&nbsp;在columnTag中指定sortable="true"<br />
&nbsp;&nbsp;可指定默认排序的列&nbsp;defaultsort="1"&nbsp;数值为第几列默认排序&nbsp;defaultorder="descending"&nbsp;指定默认为降序<br />
<br />
<strong>7.导出&nbsp;支持下列格式：'html',&nbsp;'xml',&nbsp;'csv',&nbsp;and&nbsp;'excel'.</strong><br />
&nbsp;&nbsp;属性：export="true",注意导出无效，当使用jsp:include&nbsp;or&nbsp;the&nbsp;RequestDispatcher<br />
&nbsp;&nbsp;&lt;display:column&nbsp;media="csv&nbsp;excel"&nbsp;title="URL"&nbsp;property="url"/&gt;<br />
&nbsp;&nbsp;指定该url属性值只能在csv、excel中导出<br />
&nbsp;&nbsp;需要指定export&nbsp;filter.<br />
<br />
<strong>8.更改默认设置</strong><br />
&nbsp;&nbsp;1)通过&lt;display:setProperty&nbsp;name=...&nbsp;value=...&gt;&nbsp;标签，可以覆盖一些默认设置<br />
&nbsp;&nbsp;2)创建displaytag.properties文件，所有时区共用，建中文编码则创建displaytag_zh_cn.properties，放到类路径下,jar包内共有两个默认的属性文件TableTag.properties，message.properties<br />
<br />
<strong>9其它</strong><br />
&nbsp;&nbsp;1)当多个表在一页显示时，每个表都想要有分页、排序、导出等功能时，只需为每个table指定一个不同的ID即可。<br />
&nbsp;&nbsp;2)增加表头&lt;display:caption&gt;角色管理&lt;/display:caption&gt;<br />
&nbsp;&nbsp;3)增加表尾&nbsp;&nbsp;&lt;display:footer&gt;&lt;tr&gt;&lt;td&nbsp;colspan="6"&nbsp;align="center"&nbsp;&gt;国瑞数码版权所有&lt;/td&gt;&lt;/tr&gt;&lt;/display:footer&gt;<br />
&nbsp;&nbsp;4)http和email自动链接功能，指定autolink="true"<br />
&nbsp;&nbsp;5)指定一列显示的最大长度，避免太长把表格变形&nbsp;maxLength="10"&nbsp;style="whitespace:&nbsp;nowrap;"<br />
&nbsp;&nbsp;6)当列的值为null，使用nulls="false"属性把null转为空白&nbsp;<br />
<br />
<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1500611</p>
   <img src ="http://www.blogjava.net/fisher/aggbug/181549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fisher/" target="_blank">Fisher</a> 2008-02-23 09:06 <a href="http://www.blogjava.net/fisher/articles/181549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>