﻿<?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-何杨的IT技术博客-随笔分类-Teambiz</title><link>http://www.blogjava.net/heyang/category/53169.html</link><description>为实现完美而进行探索.</description><language>zh-cn</language><lastBuildDate>Wed, 26 Dec 2012 04:23:56 GMT</lastBuildDate><pubDate>Wed, 26 Dec 2012 04:23:56 GMT</pubDate><ttl>60</ttl><item><title>14.Teambiz后台开发规范</title><link>http://www.blogjava.net/heyang/archive/2012/03/14/371838.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 14 Mar 2012 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/03/14/371838.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/371838.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/03/14/371838.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/371838.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/371838.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  IBM GDC DL  Teambiz后台开发规范  （2012年3月9日修订版）  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  撰写：何杨  2012年3月9日  &nbsp;  &nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/heyang/archive/2012/03/14/371838.html'>阅读全文</a><img src ="http://www.blogjava.net/heyang/aggbug/371838.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-03-14 10:25 <a href="http://www.blogjava.net/heyang/archive/2012/03/14/371838.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>13.Teambiz中前台开发规范</title><link>http://www.blogjava.net/heyang/archive/2012/03/14/371837.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 14 Mar 2012 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/03/14/371837.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/371837.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/03/14/371837.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/371837.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/371837.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中前台开发规范</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年3月9日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：规范目的</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">为了提高团队协作效率</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">, 提高前台页面文件的可读性，可维护性和一致性，从而方便前后台人员维护管理, 输出高质量的文档, 特制订此文档. </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">本规范文档一经讨论确认</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">, 前端开发人员必须按本文档规范进行前台页面开发. 如在执行过程中，文档确有不合时宜的地方，可及时提出, 经会议讨论后决定可以更改此文档后再执行。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：基本准则</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">符合</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能的减小服务器负载, 保证最快的解析速度. </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">程序员应该书写项目组所有人都可以看的懂的代码</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">. 简洁易懂是一种美德. 在你们编写程序时必须时刻为用户着想, 为服务器着想.</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：前台分离制度</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">我们认为，前台页面混乱的根源之一在于一个页面担负了太多的任务。因此，必须把页面的结构，样式，行为三部分解构开来，这三部分的命名如下：</span></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">类型</span></strong></p>   </td>   <td style="width:124.85pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="166">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:2.0in;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="192">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">担负任务</span></strong></p>   </td>   <td style="width:95.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="127">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JSP</span></strong></p>   </td>   <td style="width:124.85pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="166">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*.jsp</span></p>   </td>   <td style="width:2.0in;border-top:none;border-left:none;   border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="192">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">网页的结构</span></p>   </td>   <td style="width:95.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="127">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下简称</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JSP</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CSS</span></strong></p>   </td>   <td style="width:124.85pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="166">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">style.css</span></p>   </td>   <td style="width:2.0in;border-top:none;border-left:none;   border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="192">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">网页样式</span></p>   </td>   <td style="width:95.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="127">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下简称</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CSS</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JS</span></strong></p>   </td>   <td style="width:124.85pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="166">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">javascript.jsp</span></p>   </td>   <td style="width:2.0in;border-top:none;border-left:none;   border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="192">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">网页行为</span></p>   </td>   <td style="width:95.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="127">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下简称</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JS</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JSP文件书写规范</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. 文档类型声明及编码: 统一为html5声明类型&lt;!DOCTYPE html&gt;; 编码统一为&lt;meta charset="utf-8" /&gt;, 书写时利用IDE实现层次分明的缩进; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. 非特殊情况下样式文件必须外链至&lt;head&gt;...&lt;/head&gt;之间;非特殊情况下JavaScript文件必须外链至页面底部;&nbsp;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3. 引入样式文件或JavaScript文件时, 须略去默认类型声明, 写法如下:</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;link rel="stylesheet" href="..." /&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;style&gt;...&lt;/style&gt;</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;script src="..."&gt;&lt;/script&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4. 所有编码均遵循xhtml标准, 标签 &amp; 属性 &amp; 属性命名 必须由小写字母及下划线数字组成, 且所有标签必须闭合, 包括br (&lt;br /&gt;), hr(&lt;hr /&gt;)等; 属性值必须用双引号包括;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">5. 充分利用无兼容性问题的html自身标签, 比如span, em, strong, optgroup, label,等等; 需要为html元素添加自定义属性的时候, 首先要考虑下有没有默认的已有的合适标签去设置, 如果没有, 可以使用须以"data-"为前缀来添加自定义属性，避免使用"data:"等其他命名方式;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">6.结构化JSP,示例如下</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;div id=&#8221;mainMenu&#8221;&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;ul&gt;</span></p>  <p style="margin-left:1.0in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;首页&lt;/a&gt;&lt;/li&gt;</span></p>  <p style="margin-left:1.0in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;介绍&lt;/a&gt;&lt;/li&gt;</span></p>  <p style="margin-left:1.0in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;服务&lt;/a&gt;&lt;/li&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/ul&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/div&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">很多编译器提供了格式化的工具对代码整形</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">,希望多加利用.如果机器整形效果不如手动整形，请进行手动整形.</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">6. 尽可能减少冗余的div嵌套, 如&lt;div class="box"&gt;&lt;div class="welcome"&gt;欢迎访问XXX, 您的用户名是&lt;div class="name"&gt;用户名&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;完全可以用以下代码替代: &lt;div class="box"&gt;&lt;p&gt;欢迎访问XXX, 您的用户名是&lt;span&gt;用户名&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">9. 书写链接地址时, 必须避免重定向，例如：href="http://www.baidu.com/", 即须在URL地址后面加上&#8220;/&#8221;；</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">10. 在页面中尽量避免使用style属性,即style="&#8230;"; 如果需要初始化某元素的style属性，请在CSS中设置或是在JS函数window.onload中设置。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">11. 能以背景形式呈现的图片, 尽量写入css样式中;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">12. 给区块代码及重要功能(比如表格展现)加上注释, 方便后台添加功能;</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CSS文件书写规范</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. 文件编码统一为utf-8; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.结构化CSS,如下</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">html,body {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height:100%; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin:0px; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-size:12px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">body{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-top: 5px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-bottom: 5px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-left: 5px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-right: 5px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-align: center;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-size: 12px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-family:"宋体","Tahoma"; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background:#ffffff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overflow-y:hidden;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">img{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border:0px;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">#header{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin:0px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; padding:0px;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border:0px solid #00ff00;&nbsp;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width:100%;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height:75px; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overflow:hidden;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. 协作开发及分工: 架构师会根据各个模块, 同时根据页面相似程序, 事先写好大体框架文件, 分配给前端人员实现内部结构&amp;表现&amp;行为; 共用css文件style.css由架构师书写, 协作开发过程中, 每个页面请务必都要引入,此文件不可随意修改;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3. class与id的使用: id是唯一的并是父级的, class是可以重复的并是子级的, 所以id仅使用在大的模块上, class可用在重复使用率高及子级中; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4. class与id命名:命名要语义化,简明化,尽量使用简易的单词组合; 避免使用中文拼音,以下是约定俗成的一些命名例子，请多加利用:</span></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:138.35pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Id</span></strong></p>   </td>   <td style="width:85.5pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:1.95in;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Id</span></strong></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">页　眉</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">header</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">内　容</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">content</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">容　器</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">container</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">页　脚</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">footer</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">版　权</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">copyright</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">导　航</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">menu</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">主导航</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">mainMenu</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">子导航</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">subMenu</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">标　志</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">logo</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">标　语</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">banner</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">标　题</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">title</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">侧边栏</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sidebar</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">搜　索</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">search</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">按　钮</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">btn</span></p>   </td>  </tr>  <tr>   <td style="width:78.55pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="105">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">登　录</span></p>   </td>   <td style="width:138.35pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="184">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">login</span></p>   </td>   <td style="width:85.5pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="114">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">链　接</span></p>   </td>   <td style="width:1.95in;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="187">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">link</span></p>   </td>  </tr> </tbody></table>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">常用类的命名应尽量以常见英文单词为准，做到通俗易懂，并在适当的地方加以注释。对于二级类</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/ID命名，则采用组合书写的模式，后一个单词的首字母应大写：诸如&#8220;搜索框&#8221;则应命名为&#8220;searchInput&#8221;、&#8220;搜索图标&#8221;命名这&#8220;searchIcon&#8221;、&#8220;搜索按钮&#8221;命名为&#8220;searchBtn&#8221;。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">5. css属性书写顺序, 建议遵循 布局定位属性--&gt;自身属性--&gt;文本属性--&gt;其他属性. 此条可根据自身习惯书写, 但尽量保证同类属性写在一起. 属性列举: 布局定位属性主要包括: margin　＆　padding　＆　float（包括clear）　＆　position（相应的 top,right,bottom,left）　＆　display　＆　visibility　＆　overflow等； 自身属性主要包括: width &amp; height &amp; background &amp; border; 文本属性主要包括：　font　＆　color　＆　text-align　＆　text-decoration　＆　text-indent等；其他属性包括: list-style(列表样式)　＆　vertical-vlign　＆　cursor　＆　z-index(层叠顺序) 　＆　zoom等. 我所列出的这些属性只是最常用到的, 并不代表全部; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">6. 书写代码前, 考虑并提高样式重复使用率;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">7. 充分利用html自身属性及样式继承原理减少代码量, 比如:</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;ul class="list"&gt;&lt;li&gt;这儿是标题列表&lt;span&gt;2010-09-15&lt;/span&gt;&lt;/ul&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">定义</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ul.list li{position:relative}&nbsp;ul.list li span{position:absolute; right:0}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">即可实现日期居右显示</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">.</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">8. 必须为大区块样式添加注释, 小区块适量注释;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">9. 代码缩进与格式: 建议单行书写;</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JS文件书写规范</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. 文件编码统一为utf-8, 书写过程过, 每行代码结束必须有分号; 原则上所有功能均根据XXX项目需求原生开发, 以避免网上down直接宕下来的代码造成的代码污染;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. 库引入: 原则上仅引入prototype库, 若需引入第三方库, 须与团队其他人员讨论决定;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3. 变量命名: 驼峰式命名. 原生JavaScript变量要求是纯英文字母, 首字母须小写, 如counter;另, 要求变量集中声明, 避免全局变量.</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4. 类命名: 首字母大写, 驼峰式命名. 如 Counter; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">5. 函数命名: 首字母小写驼峰式命名. 如add(count);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">6. 命名语义化, 尽可能利用英文单词或其缩写;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">7. 后期优化中, JavaScript非注释类中文字符须转换成unicode编码使用, 以避免编码错误时乱码显示;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">8. 代码结构明了, 加适量注释. 提高函数重用率;</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第六部分：注释规范</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. html注释: 注释格式 &lt;!--这儿是注释--&gt;, '--'只能在注释的始末位置,不可置入注释文字区域; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. css注释: 注释格式 /*这儿是注释*/;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3. JavaScript注释, 单行注释使用'//这儿是单行注释' ,多行注释使用 /* 这儿有多行注释 */;示例：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/*****************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 将数组arr转化成为tableDatas</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 此举是为了更方便解析数据</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 何杨，2012年2月7日14:03:43</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*****************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function getTableDatasFromArr(arr){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tableDatas=new Array();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 遍历这个数组</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;arr.length;i++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var node=arr[i];</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var arr2=new Array();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var j=0;j&lt;node.childNodes.length;j++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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; var child=node.childNodes.item(j);&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; arr2.push(child.childNodes[0].nodeValue);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 向表格中添加行</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableDatas.push(arr2);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return tableDatas;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/371837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-03-14 10:24 <a href="http://www.blogjava.net/heyang/archive/2012/03/14/371837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Teambiz2012年2月29日版下载地址</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370979.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370979.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370979.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370979.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370979.html</trackback:ping><description><![CDATA[<div><div>http://www.llxxb.com/upload/source/Teambiz2012-2-29.rar </div><br />在此感谢 雷振杰&nbsp; 提供为此提供空间！</div><img src ="http://www.blogjava.net/heyang/aggbug/370979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 11:23 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>11.Teambiz中前台表单验证组件FormChecker</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370969.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370969.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370969.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370969.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370969.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中前台表单验证组件FormChecker</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月27日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">对前台页面的表单组件（对于所有用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">.value能取到值的组件都适用）提供正则表达式验证功能。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CheckItem</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\formchecker.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个类表示一个页面检查项，参数有表单组件</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">id，当不合法时提示的文字，验证表单组件内容的正则表达式和表征组件是否必填字段。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在页面中增添验证项时常会遇到这个类。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\formchecker.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个类表示一个前台组件正则表达式验证器。内含一个数组，以容纳多个验证项（</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CheckItem）</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">addCheckItem</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\formchecker.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">向</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker的数组中增添一个验证项。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在页面中增添验证项时常会遇到这个类。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">checkTextBox</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\formchecker.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">对一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">checkItem进行检查，如果它是必填组件，使用正则表达式验证它，并返回验证的结果；如果它不是必填组件，且没有输入内容的话，返回真，否则依然按照正则表单时来验证它。</span></p>   </td>  </tr> </tbody></table>  <strong><span style="font-size:11.0pt;line-height:115%;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><br style=" page-break-before:always" clear="all" /> </span></strong>  <p>&nbsp;</p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">isValid</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">teambiz\WebRoot\page\js\formchecker.js</span></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">对</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">FormChecker的数组进行循环并逐个使用checkTextBox函数进行检查，当所有的检查项都符合验证条件后返回真；如果有一个检查项不符合条件，使用alert显示提示文字并将焦点至于该组件上。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">用户在提交表单前应该调用这个函数得到表单的验证结果。</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CheckItem和FormChecker两个类的代码</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下代码请参见</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\ formchecker.js中同名函数<strong>。</strong></span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/*************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*&nbsp;&nbsp; Class:CheckItem</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*&nbsp;&nbsp; 2009.08.23</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">**************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">//-- Contructor</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function CheckItem(textboxName,msg,validChar,isRequired){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.textboxName=textboxName;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.msg=msg;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.validChar=validChar;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.isRequired=isRequired;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/*************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*&nbsp;&nbsp; Class:FormChecker</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*&nbsp;&nbsp; 2009.08.23</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">**************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">//-- Contructor</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function FormChecker(){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.checkItemArray=new Array;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">//-- Add a check Item to array</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker.prototype.addCheckItem=function(textboxName,msg,validChar,isRequired){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var checkItem=new CheckItem(textboxName,msg,validChar,isRequired);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.checkItemArray[this.checkItemArray.length]=checkItem;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">//-- Check text field in the form </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker.prototype.checkTextBox=function(checkItem){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var validChar=checkItem.validChar;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var isRequired=checkItem.isRequired;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var inputValue=$(checkItem.textboxName).value;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(isRequired!="true" &amp;&amp; inputValue.length&lt;1){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var regexStr="^"+validChar+"$";</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var regex=new RegExp(regexStr);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return regex.test(inputValue);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">//-- judge the validation of a form</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker.prototype.isValid=function(){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;this.checkItemArray.length;i++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toBeCheckedObj=this.checkItemArray[i];</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var checkResult=this.checkTextBox(toBeCheckedObj);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(checkResult==true){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; continue;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; alert(toBeCheckedObj.msg);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; $(toBeCheckedObj.textboxName).focus();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; return false;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};<br /> <br /> </span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">CheckItem和FormChecker进行验证的代码</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下代码请参考：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\user\register\javascript.jsp</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.初始化FormChecker及添加验证项目</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker=new FormChecker();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userName","请输入二到五位汉字的用户名","[\\u4E00-\\u9FA5]{2,5}","true");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userPswd","请输5位以上,最长20位的字母或数字组成的密码","(\\w){5,20}","true");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userPswd2","请输5位以上,最长20位的字母或数字组成的密码","(\\w){5,20}","true");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("email","请输入您的电子邮件","\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*","true");</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.得到表单的验证结果</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function getCheckResult(){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 进行页面输入检查</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>if(formChecker.isValid()==false){</strong></span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var userPswd=$("userPswd").value;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var userPswd2=$("userPswd2").value;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(userPswd!=userPswd2){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("userPswd2").focus();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("前后两次密码必须一致.");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上粗体部分就是得到</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker的验证结果。由于FormChecker只能对单个组件的文本内容进行正则表达式校验，无法对对多个组件进行比较，因此如果实际需要其它的验证项，可以在getCheckResult函数中进行添加。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.注册按钮点击时间后的响应函数：</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">$("registerBtn").onclick=function(){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(<strong>getCheckResult()==</strong>true){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; submitForm();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">载入这批函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz中，这一载入一般放在style.css中。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;script   src="page/js/formchecker.js"   type="text/javascript"&gt;&lt;/script&gt;</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">window_onload函数中初始化表单验证器并增添检查项。</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal">&nbsp;</p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker=new   FormChecker();</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userName","请输入二到五位汉字的用户名","[\\u4E00-\\u9FA5]{2,5}","true");</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userPswd","请输5位以上,最长20位的字母或数字组成的密码","(\\w){5,20}","true");</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("userPswd2","请输5位以上,最长20位的字母或数字组成的密码","(\\w){5,20}","true");</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">formChecker.addCheckItem("email","请输入您的电子邮件","\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*","true");</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">使用</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker的isValid函数来得到验证结果。</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;">&nbsp;</p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function   getCheckResult(){</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 进行页面输入检查</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(formChecker.isValid()==false){</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">注册按钮点击时间后的响应函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal">&nbsp;</p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">$("registerBtn").onclick=function(){</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(<strong>getCheckResult()</strong>==true){</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; submitForm();</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第六部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">进行表单元素验证是程序员不得不做却又较为乏味的工作之一，</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker类能有助于减轻他们的负担，从而使得用正则表达式验证文本内容的工作变得简单，程序员只需要在正则表达式的编写上下些功夫或者求助于网络。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">FormChecker的不足之处是验证模式单一，验证逻辑比较简单，但对于验证，似乎也没有多少共性的需求了，如果有希望大家能赐教。</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370969.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:41 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370969.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>12.Teambiz中后台参数容器RequestParamMap</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370970.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370970.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370970.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370970.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中后台参数容器RequestParamMap</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月27日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">简化页面请求参数的取值和存放，解决乱码问题，并简化数据传输通道上函数参数的编写。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\RequestParamMap.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">它是一个页面请求参数的容器，内含一个哈希表，以键值对的方式来存储请求参数的名和值。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">它的构造函数接受一个哈希表，这个哈希表在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">AjaxAction的getRequestParamMap函数中被生成，并传入强制子类实现的process函数中，因此每个继承自AjaxAction的类中直接使用RequestParamMap对象即可，无需考虑它的由来。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">有一点需要说明的是，由于非</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ASC码字符在URL中是不允许的，因此在使用Ajax.Request对象发起请求前使用javaScript函数eval两次对url进行转码，与之对应的，在AjaxAction的getRequestParamMap函数中使用UTF8Coder类decode方法又将其还原了回来，因此程序员无需担心乱码问题。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">getParamValue</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\RequestParamMap.java中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">程序员可以参数名为单位，使用这个函数取出参数的值，当参数名不存在，即请求参数中没有后台想要的值，一个异常将被抛出。按照</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teamBiz的异常传递体系，这个异常会在用户界面上显示出来，这样做有助于问题的快速定位。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">addParam</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\RequestParamMap.java中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">程序员可以将参数名和参数值添加到</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap，设计这个函数的考虑到很多参数如用户信息在请求中往往是不见的，需要在Action中从session或是其它地方取出再往后方传递。</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：有关</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap使用的代码</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. RequestParamMap类的代码</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* 页面请求参数容器</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @author 何杨(heyanghy@cn.ibm.com)</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @version 1.00</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @time Feb 6, 2012 10:47:39 AM</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;*</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public class RequestParamMap{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 存储页面请求参数的哈希表</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Map&lt;String,String&gt; map;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* 构造函数</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param map</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public RequestParamMap(Map&lt;String,String&gt; map){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.map=map;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* 按请求参数的名称取得请求参数的值</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param paramName</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @return</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getParamValue(String paramName) throws IllegalArgumentException{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(map.containsKey(paramName)){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; return map.get(paramName);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp; throw new IllegalArgumentException("找不到名为"+paramName+"的页面请求参数.");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* 添加一个参数</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param paramName</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param paramValue</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void addParam(String paramName,String paramValue){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map.put(paramName, paramValue);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\RequestParamMap.java</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. AjaxAction的getRequestParamMap函数</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">private RequestParamMap getRequestParamMap(HttpServletRequest request){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map&lt;String,String&gt; map=new HashMap&lt;String,String&gt;();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Enumeration&lt;?&gt; e = request.getParameterNames(); e.hasMoreElements();) {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String name = (String) e.nextElement();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] values = request.getParameterValues(name);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (values != null &amp;&amp; values.length &gt;= 1) {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; String value=UTF8Coder.decode(values[0]);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; map.put(name, value);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new RequestParamMap(map);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\AjaxAction.java</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.继承自AjaxAction的Action类中对RequestParamMap的使用</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public final class FetchExecuterAction extends AjaxAction {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static Logger logger = Logger.getLogger(FetchExecuterAction.class);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void process(ActionMapping mapping, ActionForm form,</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; HttpServletRequest request, HttpServletResponse response,<strong>RequestParamMap paramMap</strong>)</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; throws Exception {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.trace("取得执行者名单Action");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintWriter out = response.getWriter();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RelationService service=SpringUtil.getRelationService();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Long userId=(Long)request.getSession().getAttribute("userId");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(userId!=null){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; <strong>paramMap.addParam("userId", String.valueOf(userId));</strong></span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; paramMap.addParam("userName", "自己");</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; paramMap.addParam("status", Relation.Status_Agree);</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; String xml=service.getExecuterXml(paramMap);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;response&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;status&gt;ok&lt;/status&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println(xml);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;/response&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;response&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;status&gt;ng&lt;/status&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;text&gt;请登录后再来执行此操作&lt;/text&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; out.println("&lt;/response&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码来自：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\relation\FetchExecuterAction.java</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4.后台DAO类对RequestParamMap的使用</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public String getExecuterXml(RequestParamMap paramMap) throws Exception{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>String userId=paramMap.getParamValue("userId");</strong></span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String userName=paramMap.getParamValue("userName");</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String status=paramMap.getParamValue("status");</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; select");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb01.toUserId as id,");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb02.name as name");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; from");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; teambiz_relation");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb01,");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; teambiz_user");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb02");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; where");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb01.toUserId=tb02.id");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tb01.fromUserId="+userId+"");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tb01.status='"+status+"'");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; order by");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb01.id");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql=sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;?&gt; ls=fetchRecords(sql,new NameValueRowMapper());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb2=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb2.append(new NameValueList(ls).asXML());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb2.append("&lt;node&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb2.append("&lt;id&gt;"+userId+"&lt;/id&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb2.append("&lt;name&gt;"+userName+"&lt;/name&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb2.append("&lt;/node&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb2.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码来自：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\RelationDao.java</span></p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">函数参数如果杂乱很不利于一些基类中共通函数的编写，比如分页函数，在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap类的帮助下，这个问题能够得到解决。它附带的自动生成对象，解码，无参数时抛出异常要给程序中参数的取值，转码和异常处理带来了方便.</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap类体积很小，功能也不复杂，但对后台的整个代码结构的改善带来了莫大好处，类似这种组件是值得发掘的。</span></p>  <p>&nbsp;</p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:41 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>10.Teambiz中与表格操作相关的函数</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370968.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370968.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370968.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370968.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370968.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370968.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中与表格操作相关的函数</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月26日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">提供向表格行的单元格中添加文本，链接，图片等是操作表格内容的常见操作函数。它们在诸如</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">addDatasToTable之类的函数常常被使用。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createTextTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个仅含文本的单元格。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createLink</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个链接，它是为</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createLinkTd函数准备的。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createLinkTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个仅含链接的单元格，当程序员需要在单元格中需要创建链接或是需要通过</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">js伪协议调用js函数可以使用它。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createImageTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个仅含图片的单元格，当需要用图标表示数据的状态时可以使用它。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createTitledLink</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个带提示性说明（</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tooltiptext）的链接，它是为createTitledLinkTd函数准备的</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createTitledLinkTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个包含提示性说明链接的单元格，它比</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createLinkTd更具用户友好型。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createIamgeLink</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个图片链接，它是为</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createImageLinkTd函数使用的。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createImageLinkTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个包含图片链接的单元格，如果图片比文字更加形象时可以考虑用它取代</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createLinkTd和createTitledLinkTd</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createImageTextTd</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个兼具图片和文字说明的单元格。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createStartSearchRowBy</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\changepage.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">colspan为40的表格行，内含图片和文字，一般在开始查询时使用。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">createNgRowBy</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\changepage.js中同名函数。</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">colspan为40的表格行，内含文字，一般从后台没有得到相要的数据时使用。</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：实际代码</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下代码请参见</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\dom.js中同名函数<strong>。</strong></span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a text cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createTextTd(text){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(document.createTextNode(text));&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a image cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createImageTd(imageUrl){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var image=document.createElement("img");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image.setAttribute("src",imageUrl);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(image);&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a link</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createLink(text,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=document.createElement("a");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.appendChild(document.createTextNode(text));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.setAttribute("href",url);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return link;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a link cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createLinkTd(text,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=createLink(text,url);</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(link);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a titled link</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-7-9 10:46:50 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createTitledLink(text,title,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=document.createElement("a");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.appendChild(document.createTextNode(text));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.setAttribute("href",url);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.setAttribute("title",title);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return link;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a Titled link cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-7-9 10:46:50 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createTitledLinkTd(text,title,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=createTitledLink(text,title,url);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(link);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a Iamge link</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createIamgeLink(imageUrl,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=document.createElement("a");&nbsp;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var image=document.createElement("img");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image.setAttribute("src",imageUrl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.appendChild(image);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.setAttribute("href",url);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return link;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a Iamge linked table cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2011-3-1 9:27:07 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createImageLinkTd(imageUrl,url){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(createIamgeLink(imageUrl,url));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/******************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* create a Iamge and text cell</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 2012-1-9 10:31:31 heyang</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">******************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function createImageTextTd(imageUrl,text){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cell=document.createElement("td");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var image=document.createElement("img");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image.setAttribute("src",imageUrl);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(image);&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell.appendChild(document.createTextNode(text));&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return cell;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">载入这批函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz中，这一载入一般放在style.css中。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;script   src="page/js/dom.js"   type="text/javascript"&gt;&lt;/script&gt;</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">根据实际情况使用这批函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal">&nbsp;</p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\task\sent\javascript.jsp中addDatasToTable函数，这个函数基本使用到了上面提到的所有函数。</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：小结</span></strong></p>  <p><span style="font-family:宋体;">使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">DOM</span><span style="font-family:宋体;">生成文字，链接，图片等元素是繁重的劳动，将它们归纳成函数有利于提高程序员的生产率，并把精力集中于更值得投放精力的方向上。</span></p>  <p>&nbsp;</p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:38 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>09.Teambiz中MyTable类</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370967.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370967.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370967.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370967.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370967.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中MyTable类</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月26日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">帮助程序员更轻松的操作前台的表格。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\myTable.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JavaScript类，用于操作表格。实际上，它代表的是table的tbody部分，而不包括caption，thead，tfoot。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable类的构造函数，传入tbody的id，得到表格的tbody部分。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">clear</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">一次性删除</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tbody的所有行。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在查询开始前基本都有这一步以清除以往的数据。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">removeFirstRow</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">删除</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tbody的第一行。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个函数在实际中使用很少。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">getRowCount</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">得到</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tbody中所有行的个数。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">当需要计算当前显示多少行时可以用到。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">appendRow</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tbody底部添加一行，并且给奇偶行赋予不同的样式。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">逐行往表格中添加数据时常用到它。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">removeRow</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">删除</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tr的id为传入参数的行。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">当删除对象成功时需要调用这一函数。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">refreshRowColor</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">同上文件的同名函数</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">给奇偶行赋予不同的样式。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">一般在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">appendRow和removeRow中被调用，外界也可主动调用。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：实际运用代码说明</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下代码请参见</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\relation\sent\javascript.jsp中search函数。</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.</span> </strong><strong><span style="font-family:宋体;">得到表格并清除原有行</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">：</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var userTable=new MyTable("userTable");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">userTable.clear();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码就是新建一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable对象并清除原有行的过程，MyTable构造函数接受一个tbody的id，请与页面中tbody的实际ID相对应。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2. 向表格添加行</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">userTable.appendRow(createStartSearchRowBy("page/img/waiting.gif","开始查询已经发送的联系..."));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">userTable.appendRow(createNgRowBy("没有查询到已经发送的联系."));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码就是向</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tody中添加一个tr的过程，至于createStartSearchRowBy，createNgRowBy两个函数我们将在后文详述。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\changePage.js</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.</span> </strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">向表格中添加一个完整的行。</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var arr=tableDatas[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">// 创建行</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var row=document.createElement("tr");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">// 加入复选框</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var checkBox=document.createElement("input");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">checkBox.setAttribute("type","checkbox");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">checkBox.setAttribute("id",arr[0]);</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var td=document.createElement("td");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">td.appendChild(checkBox);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(td);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[1])); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[2])); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[3])); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[4])); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[5])); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">row.appendChild(createTextTd(arr[6])); </span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">userTable.appendRow(row);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码完整显示使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">DOM创建tr以及一个个td，并往td中添加对象的过程。根据实际情况的不同，我们可能会往行row中添加文本，链接，图片，图片链接等对象，TeamBiz为此类事务设计了一批函数以简化代码编写，这将在后面的文章详述。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码位置：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\relation\sent\javascript.jsp中addDatasToTable函数。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4.页面表格</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;table class="stocktable" width="100%" cellspacing="0"&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;caption&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id="pageSizeCbo" onchange='fetchDatas(0)'&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;option value="20"&gt;20&lt;/option&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;option value="50"&gt;50&lt;/option&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;option value="100"&gt;100&lt;/option&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;option value="1000"&gt;1000&lt;/option&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 总记录数&lt;span id="recordCount"&gt;0&lt;/span&gt; 总页数&lt;span id="pageCount"&gt;0&lt;/span&gt; 当前第&lt;span id="currentPage"&gt;0&lt;/span&gt;页 &lt;span id="pageData"&gt;0&lt;/span&gt;&lt;/caption&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;thead&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="28"&gt;&lt;input type="checkbox" id="selectAllChk" onclick="selectAllCheckBox()"/&gt;&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="17%"&gt;发送用户&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="16%"&gt;接收用户&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="16%"&gt;接收用户邮件&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="16%"&gt;接收所属组名&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="16%"&gt;接收所属公司&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;th width="16%"&gt;联系状态&lt;/th&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/thead&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tbody id=<strong><span style="color:red">"userTable</span></strong>"&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>&lt;tr class="odd"&gt;</strong></span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;td colspan="40"&gt;&lt;img src='page/jsp/relation/create/img/waiting.gif'/&gt; 查询中，请稍候...&lt;/td&gt;</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tbody&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;tfoot&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;td colspan="40" align="right" width="100%"&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="submitDiv"&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; &lt;label for="gotoPageBtn"&gt;&amp;nbsp;&lt;/label&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; &lt;input type='button' name='gotoPageBtn' onchange='gotoPage()' value='转到' /&gt;第&lt;input type='text' id='pageIndexTxt' onchange='gotoPage()' size='1' /&gt;页&amp;nbsp;页码:&lt;span id="footPageData"&gt;&lt;/span&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &lt;/td&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tfoot&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/table&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码中，红色粗体部分的&#8220;</span><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;; color:red">userTable</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&#8221;就是需要往</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable构造函数中传入的参数，而<strong>黑色粗体</strong>部分就是MyTable类诸函数实际操作的区域。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码位置： </span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\relation\sent\content.jsp</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">载入</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable类</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz中，这一载入一般放在style.css中。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;script   src="page/js/myTable.js"   type="text/javascript"&gt;&lt;/script&gt;</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">创建</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable对象</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">由于作用域的不同，这一过程可能会使用多次，但应该避免使用全局的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">myTable对象。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var table=new MyTable(&#8220;tableID&#8221;);</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">操作</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyTable对象</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\myTable.js中定义的多个函数操作表格对象，如果这些函数不能满足您的需求，可以参照原有行数的模式来创建新的函数。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;">&nbsp;</p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong>&nbsp;</strong></p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：小结</span></strong></p>  <p><span style="font-family:宋体;">表格是前台程序操作的主要对象之一，将表格的常用操作加以归纳综合，就形成了</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;">MyTable</span><span style="font-family:宋体;">类，它能减少重复代码，减少出错的可能行，减轻劳动和增加代码的一致性，如果我们在编写程序时多加归纳总结，还会诞生出更多相似的类出来。</span></p>  <p>&nbsp;</p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:37 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>08.Teambiz中分页之前台处理</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370966.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370966.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370966.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370966.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  Teambiz中分页之前台处理  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  作者：何杨  撰写日期：2012年2月25日  版本：1.02  更新日期： &nbsp;2012年2月27日  &nbsp;  &nbsp;  第一部分：功...&nbsp;&nbsp;<a href='http://www.blogjava.net/heyang/archive/2012/02/29/370966.html'>阅读全文</a><img src ="http://www.blogjava.net/heyang/aggbug/370966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:36 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>07.Teambiz中分页之后台处理</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370965.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370965.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370965.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370965.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中分页之后台处理</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月25日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">分页是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Web程序的常见功能之一，此文主要讲述后台对分页功能的处理。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">BaseService</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\service\base\BaseService.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此抽象类是诸</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Service类的基类，它提供了专用于分页的函数pagedSearch，用户只需传入相应的SQL语句，RequestParamMap实例和dao实例即可完成分页功能，实际上后两者一个是在AjaxAction中自动生成的，一个是Sping中配置的，因此，用户只需书写正确的查询SQL语句即可。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">由于</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">DB2数据库分页操作的特殊性，它需要分页时加入排序项，因此若数据源是DB2，那么请换用功能相似的pagedSearch4DB2函数。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JdbcDao</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\base\JdbcDao.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此抽象类是诸</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Dao类的基类，它提供了getSqlCount,pageSearchList两个函数以实现分页功能，前者用于得到结果集的总数，后者用于取得某一页的结果集。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">若数据库是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">DB2，请换用功能相似的pageSearchList4DB2。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：关键代码说明</span></strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.</span> BaseService</strong><strong><span style="font-family:宋体;">中的</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">pagedSearch函数：</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public String pagedSearch(String sql,RequestParamMap paramMap,JdbcDao dao) throws Exception{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int currentPage=Integer.parseInt(paramMap.getParamValue("start"));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int pageSize=Integer.parseInt(paramMap.getParamValue("pageSize"));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;currentPage&gt;"+currentPage+"&lt;/currentPage&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 取得总记录数</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long recordCount=dao.getSqlCount(sql);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;recordCount&gt;"+recordCount+"&lt;/recordCount&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 得到总页数</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long pageCount=0;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((recordCount % pageSize)==0){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageCount=recordCount/pageSize;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageCount=recordCount/pageSize+1;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;pageCount&gt;"+pageCount+"&lt;/pageCount&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NameValueList nvList=dao.pageSearchList(sql,currentPage*pageSize, (currentPage+1)*pageSize);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(nvList.asXML());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个函数对数据库进行了两次查询，一次是取出</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句能得到的记录总数，一次是取出当前页的数据，另外从paramMap中取出了当前页和一页可以容纳的记录数等数据，有了这些数据，进行一点计算，就能获得前台页面需要的当前页，总记录数，页数和当前页记录等数据，最后此函数将所有数据都变换为XML格式的字符串。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.</span> </strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JdbcDao的getSqlCount函数</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public int getSqlCount(String sql) throws Exception{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RecordCounter rc=new RecordCounter(sql,this.getJdbcTemplate());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return rc.getCount();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个类利用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RecordCounter类对SQL语句进行了一定程序的处理，然后取出这个SQL语句能查询出的记录总数量，RecordCounter类代码如下：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public class RecordCounter{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String sql;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private JdbcTemplate jdbcTemplate;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* 构造函数</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param sql</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @param jdbcTemplate</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public RecordCounter(String sql,JdbcTemplate jdbcTemplate){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.sql=sql;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jdbcTemplate=jdbcTemplate;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* 得到SQL语句查询到的记录数，对外的关键语句</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @author: 何杨（heyanghy@cn.ibm.com）</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @date&nbsp;: Apr 23, 2011</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @time&nbsp;: 11:09:35 AM</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;* @return</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int getCount() throws Exception{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; select ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count(*) as recordCount&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp; from ("+sql+") t&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql=sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;?&gt; ls = jdbcTemplate.query(sql, (new IntegerRowMapper()));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer i=(Integer)ls.get(0);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return i.intValue();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\rowmapper\RecordCounter.java</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.</span> </strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JdbcDao类的fetchPageRecords和fetchPageRecords4DB2函数。</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">下面两个函数用于取出分页的数据，按照数据库的不同使用不同的部分或是换用不同的函数。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* 查询分页数据，如果是Oracle则放开上面一段，如果是MySql则放开下面一段</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @author: 何杨（heyanghy@cn.ibm.com）</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @date&nbsp;: Mar 29, 2011</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @time&nbsp;: 3:34:44 PM</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param start</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param end</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param sql</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param mapper</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @return</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">protected final List&lt;?&gt; fetchPageRecords(int start,int end,String sql,RowMapper mapper){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Oracle</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*sb.append(" Select&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; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *<span>&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(" from&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; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t01.*,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rownum as newRowNum&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(sql);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) t01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>rownum&lt;='"+end+"'<span>&nbsp;&nbsp;&nbsp; </span>");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(" where&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; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newRowNum&gt;'"+start+"'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // MySql</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(sql+" limit "+start+","+(end-start));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql2=sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.getJdbcTemplate().query(sql2,mapper);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/**</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* 专门为DB2制作的查询分页数据，特殊的地方是比上面的函数多了一个Order by</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param start</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param end</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param sql</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param orderBy</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @param mapper</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;* @return</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;*/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">protected final List&lt;?&gt; fetchPageRecords4DB2(int start,int end,String sql,String orderBy,RowMapper mapper){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Db2</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(" Select&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; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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; &nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(" from&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; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table01.*,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROW_NUMBER() OVER(ORDER BY "+orderBy+" ) AS ROWNUM&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&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;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(sql);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) table01 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;where&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWNUM &gt;"+start+"&nbsp;and&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWNUM &lt;="+end+" ");</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql2=sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.getJdbcTemplate().query(sql2,mapper);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Dao类中编写需要进行分页查询的SQL语句，并用函数进行包装。</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">建议对</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL进行良好的整形。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\RelationDao.java中的getSentRelationSql函数。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Service类中撰写调用dao中的分页查询函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\service\RelationService.java中的pagedSearchMySentRelation函数。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Action中调用Service中的分页查询函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">如果需要在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">paramMap中增加新的参数，可以使用com.ibm.heyang.action.base.RequestParamMap类的addParam函数</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\relation\SearchSentRealationAction.java类</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">后台的分页处理，实际上需要程序员动脑筋的地方就是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句的编写，其它都是固定模式的操作，TeamBiz通过BaseService和JDBCdao两个类中相应函数的帮助，固化了这些固定的部分，程序员只要正确调用即可，这在一定程度上减轻了程序员的工作量，降低了人为出错的可能。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">通过不同分页</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句的采用，TeamBiz能适应三种数据库，Oracle，MySQL和Db2，如果要增添更多数据库的支持，对分页SQL进行改写即可。</span></p>  <p>&nbsp;</p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:35 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>06.Teambiz中三种特殊RowMapper的使用</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370964.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370964.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370964.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370964.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中三种特殊RowMapper的使用</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月25日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： </span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">针对特殊目的的查询，</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz提供了一系列的RowMapper类以减轻程序员的劳动。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">IntegerRowMapper</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\rowmapper\IntegerRowMapper.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">只需进行数量查询时，如</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">select count(*) from tb,明确只会返回一行一列，这时建议使用这个类。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">StringRowMapper</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\rowmapper\StringRowMapper.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">当只查询一列时，如</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">select a from table，建议使用这个类。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">UserRowMapper</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">eambiz\src\com\ibm\heyang\dao\rowmapper\UserRowMapper.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">当需要从</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JDBCTemplate查询到的链表中取出对象时，建议仿照这个类制作自己的RowMapper类</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：各种</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RowMapper类的具体使用</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.</span> <span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">IntegerRowMapper。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; select ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count(*) as recordcount");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; from teambiz_menu");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">String sql=sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">List&lt;?&gt; ls=this.getJdbcTemplate().query(sql, new IntegerRowMapper());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Integer count=(Integer)(ls.get(0));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\MenuDao.java中isNoMenu函数。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.</span> <span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">StringRowMapper</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; select");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t01.group_name");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; from");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys_group");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t01,");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys_user");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t02");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; where");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t01.groupid=t02.groupid");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t02.userid="+userid+"");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">String sql=sb.toString();</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">// 查询</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">List&lt;?&gt; ls = this.getJdbcTemplate().query(sql,new StringRowMapper());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">最后得到的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ls就是一个包含字符串元素的链表，要取值对其进行遍历即可。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.</span> <span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">UserRowMapper的使用示例</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; select ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ID, ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name, ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email, ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pswd, ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupName, ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; companyName,");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; level");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; from&nbsp;teambiz_user");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp; where name='"+name+"' and ");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pswd='"+pswd+"'&nbsp;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">String sql=sb.toString();</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">List&lt;?&gt; ls = this.getJdbcTemplate().query(sql, (new UserRowMapper()));</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">if(ls.size()==1){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (User)ls.get(0);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception("用户名或密码错误!");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\dao\UserDao.java中的getUserByNamePswd函数。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">对数据库进行各种查询是程序员的常见任务之一，如果能适当运用以上类，能减少代码的重复程度及减轻他们的劳动强度。</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:34 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>04.Teambiz中从Sql到XML的过程</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370962.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370962.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370962.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370962.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中从Sql到XML的转化过程</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月23日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月24日</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">将后台编写的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句，向数据库请求后获得的数据，整理成XML格式的文本。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JdbcDao</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.base.JdbcDao</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此类中的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">fetchRecords函数用来取得数据库中的数据，</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueRowMapper</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.rowmapper.NameValueRowMapper</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此类用于将进行数据库查询得到的行集转化为一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValue链表对象。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValue</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.domain.NameValue</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此类用于存储行集中某字段的名称和值，在将对象链表转化为</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML的过程中使用了它的函数asXML()。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.domain.NameValueList</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">内含一个链表，用于容纳</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValue对象链表，在将对象链表转化为XML的过程中使用了它的函数asXML()。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：从</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句向XML的转化过程</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;"><br /> NameValueRowMapper负责查询结果集一个行的转换，对于其中的每个字段，会形成一个字段名和字段值的NamaValue对象，然后放到一个类型为List&lt;NameValue&gt;的链表中。最终，这个链表对应着这个行集，链表里面的每个元素对应着一个字段（包含其名及值）。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList用于容纳每个行形成的链表，它本身和查询结果集是对应的。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">得到最终的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList之后，调用其asXML方法，将遍历其中的每个元素，得到行集链表，再遍历其中的NameValue对象，再调用每个对象的asXML函数，得到XML文本。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以下展示了两个关键函数：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList对象的asXML函数如下：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public String asXML() {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(Object obj:list){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;NameValue&gt; ls=(List&lt;NameValue&gt;)obj;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;<strong>node</strong>&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(NameValue nv:ls){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; sb.append(nv.asXML());</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;/<strong>node</strong>&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上粗体部分是每个行的标志，在前台页面对</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML进行解析时还要使用到它，这已经形成了前后台之间的一个约定。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValue对象的asXML函数如下：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">public String asXML() {</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb=new StringBuilder();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;"+name+"&gt;");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(StringUtils.isBlank(value)?"-":value);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("&lt;/"+name+"&gt;");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb.toString();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：效果展示</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句示例：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">select text, url, level from teambiz_menu where level&lt;=2 order by level</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句从数据库查询出来的结果集：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><img alt="" src="http://www.blogjava.net/images/blogjava_net/heyang/sqltoxml01.jpg" height="285" width="462" /><br /></span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">最终得到的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML文本：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;登出&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Logout.do&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;0&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;修改自己信息&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/user/modify/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;建立联系&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/relation/create/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;我发出去的联系&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/relation/sent/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;发给我的联系&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/relation/received/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;创建任务&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/task/create/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;我发出去的任务&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/task/sent/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;发给我的任务&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/task/received/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;今日待办任务/已办任务&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;Goto.do?page=/page/jsp/task/tododone/index.jsp&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;1&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text&gt;用户管理&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url&gt;#&lt;/url&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;level&gt;2&lt;/level&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">编写</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">编写一个正确的查询语句，建议使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SqlToolBox进行整形工作。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">类</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.MenuDao中的函数getMenuByUserLevel中的SQL语句。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">使用</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">fetchRecords函数得到结果集。</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这个函数处于</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.base.JdbcDao类中，无需改动，只需要传入正确的sql语句和RowMapper即可。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">类</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.MenuDao中的函数getMenuByUserLevel中的List&lt;?&gt;   ls=super.fetchRecords(sql,new NameValueRowMapper());一句。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">将结果集用</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList包装起来</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">将结果集传入</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList类的构造函数即可。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">类</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.dao.MenuDao中的函数getMenuByUserLevel中的return new   NameValueList(ls);一句。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">将结果集转化为</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">使用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NameValueList类的asXML函数。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">com.ibm.heyang.service.MenuService的getMenuByUserLevel函数。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第六部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">编写</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL语句并将其转化为前台可以辨识的格式是程序员的主要工作负担，采用以上方式的好处有：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.整个过程中，一个函数fetchRecords和三个对象NameValueRowMapper,NameValue,NameValueList都是系统提供的，程序员无需编码，而只需把SQL语句写好，放到DAO类的一个函数中就可以了。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.任何查询类的SQL语句，无论字段类型如何，都可以用如上方式处理。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.如果有特殊的查询方式，com.ibm.heyang.dao.rowmapper下还提供了很多类供使用，如针对select count(*) from tb的IntegerRowMapper类，针对select * from tb where id=XX 的MapRowMapper类，及将将一行记录转化成一个包含键值对的链表的StringRowMapper等，用户也可参照UserRowMapper来书写自己的RowMapper类。这些类的使用将给编码带来较大遍历，关于它们将另行文详述。</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:32 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>05.Teambiz中前台页面对XHR对象从后台取回的XML的处理</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370963.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370963.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370963.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370963.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz中前台页面对XHR对象从后台取回的XML的处理</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月24日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月25日 </span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XHR从后台得到XML文本后，使用DOM对其进行解析。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Ajax.Request</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\prototype-1.6.0.3.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Prototype提供的Ajax请求对象，它将被用来想后台发出异步请求并获取反馈。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ajaxObj</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">它就是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XMLHttpRequest对象（简称XHR）。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ajaxObj.responseText</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XHR对象获得的反馈文本，在需要查看反馈的XML时会用到它。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">ajaxObj.responseXML</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XHR对象获得的反馈XML，也是前端需要解析的数据来源。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">status</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">反馈</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML第一个status节点的值，当它为ok是意味着顺利得到了后端传来的信息；当它为ng意味着前后端通道是通畅的，但由于某种原因不能获得想要的数据，这个原因可能是用户缺乏权限，后端组件未准备好，后他SQL调用出现异常或是运行异常。这个变量需要在前后端有固定约定才能发挥功用。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">arr</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">包含反馈</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML中所有node节点的数组。它也依赖于前后端有固定的约定。这是一个临时变量，真正发挥功用的是tableDatas。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tableDatas</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">无</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">它本身是一个数组，而内部元素也是一个数组，正如其名称描述的那样，它是一个表格形式的数据，它的&#8220;行&#8221;相当于</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">SQL查询结果集的行，它的&#8220;列&#8221;相对于结果集的字段值集合，它的&#8220;单元格&#8221;就是数据。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">之所以采用这个对象是因为在使用上相对于</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">arr更加方便，进行一次遍历再通过数组下标就能访问到每个数据。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：三种前台对取回</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XML的处理</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.如果前台仅需status一个量。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">有时，前台仅需</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">status就能进行判定后台是否实现了自己的目的，如进行登录，变更等操作，对status直接进行判断即可，对后台进行CUD操作常会这样处理，示例代码如下：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">new Ajax.Request(url,{&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp; </span>method:'get',&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp; </span>onSuccess: function(ajaxObj){&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; // alert(ajaxObj.responseText);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; hideLoadingWnd();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; var status=ajaxObj.responseXML.getElementsByTagName("status")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; if(status=="ok"){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.location.href="Goto.do?page=/page/jsp/task/tododone/index.jsp";</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 返回错误信息</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hideLoadingWnd();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var text=ajaxObj.responseXML.getElementsByTagName("text")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(text);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp; </span>},&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp; </span>onFailure: function(){ </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; hideLoadingWnd();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; alert("服务器没有响应.");&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span>&nbsp;&nbsp; </span>}&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码所在路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\user\login\javascript.jsp中submitForm函数。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.如果前台需要按照节点名称取出传回XML的值。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">有时，前台需要明确取出某个名称的节点值（意图获得后台处理的状态），这时可以如同取出</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">status的值一样，从ajaxObj中取出想要的值，示例代码如下：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var currentPage=ajaxObj.responseXML.getElementsByTagName("currentPage")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var recordCount=ajaxObj.responseXML.getElementsByTagName("recordCount")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">var pageCount=ajaxObj.responseXML.getElementsByTagName("pageCount")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">// 设置分页数据</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">setPage(recordCount,currentPage,pageCount);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\jsp\task\sent\javascript.jsp中search函数。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.如果前台需要表格形式的数据</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">对后台的查询操作常进行这种处理，这时需要用到系统转化出来的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tableDatas对象，示例代码如下： </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/*****************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 取得后方菜单</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 何杨，2012年2月7日11:40:34</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*****************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function fetchMenuFromBg(){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("menuBar").innerHTML="";</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 组合URL</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url=encodeURI('FetchMenu.do?');</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url=encodeURI(url);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 发出Ajax请求</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Ajax.Request(url,{&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method:'get',&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onSuccess: function(ajaxObj){&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;// alert(ajaxObj.responseText);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var status=ajaxObj.responseXML.getElementsByTagName("status")[0].firstChild.data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(status=="ok"){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; // 找到所有节点放入数组</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; var arr=ajaxObj.responseXML.getElementsByTagName("node");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; if(arr.length==0){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("没有得到返回数据.");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; var tableDatas=new Array();&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; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; // 遍历这个数组</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; for(var i=0;i&lt;arr.length;i++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; var node=arr[i];</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var arr2=new Array();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var j=0;j&lt;node.childNodes.length;j++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var child=node.childNodes.item(j);&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;&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; arr2.push(child.childNodes[0].nodeValue);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 向表格中添加行</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableDatas.push(arr2);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; // 显示菜单</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; showMenu(tableDatas);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; var text=ajaxObj.responseXML.getElementsByTagName("text")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; alert(text);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onFailure: function(){ </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hideLoadingWnd();</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("服务器没有响应.");&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<span>&nbsp;&nbsp; </span></span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ); </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">};</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">/*****************************************************</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 显示菜单</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">* 何杨，2012年2月7日14:03:43</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">*****************************************************/</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">function showMenu(tableDatas){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ul=document.createElement("ul");&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;tableDatas.length;i++){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var arr=tableDatas[i];</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var text=arr[0];</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url=arr[1];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var link=document.createElement("a");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.appendChild(document.createTextNode(text));</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link.setAttribute("href", url);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var li=document.createElement("li");</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; li.appendChild(link);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ul.appendChild(li);</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("menuBar").appendChild(ul);&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">}</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">以上代码路径：</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\common.js，其中tableDatas的产生用getTableDatasFromArr进行了一定程度的简化。</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">编写向后端发起请求的函数</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">请参照上面的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">fetchMenuFromBg函数书写新函数，主要需要修改的地方在URL和处理tableDatas的函数，其它部分无需变化。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\common.js中的fetchMenuFromBg函数。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">编写处理</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">tableDatas的函数（可选）</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">遍历方式请参照上面的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">showMenu函数，取得数据后进行DOM操作需要自行处理。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\common.js中的showMenu函数。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在前后台有一定约定的前提下（</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">status，node），通过一系列对象的配合，我们轻松完成从SQL查询结果集到前台能使用的结果集的转换，这些对象及其使用方法绝大多数都是固定的或是仅需稍加改变的，程序员主要需要考虑的是最初的SQL语句和最终的DOM处理过程，中间只用按部就班的完成装配工作。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这种方式的优势在于：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.减轻了编码量，同时也减少了出错的可能。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.易用，因为SQL相对于HQL更容易被人接受。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.比页面循环标签更具表现性。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这种方式的主要缺点在于：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1. JS和DOM操作需要程序员加以小心。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.如果字段含有特殊字符可能会造成XML解析异常,但对此无需过于担心，需要注意的多在备注这样的字段中，可以在需要特殊处理再进行处理。</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:32 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>03.Teambiz中Ajax的基本运用</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370961.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370961.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370961.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370961.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370961.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz中Ajax的基本运用</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月23日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.03</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月28日</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：功能说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">提供前台页面到后台程序的异步请求响应通道。</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：核心组件</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:176.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">路径</span></strong></p>   </td>   <td style="width:171.9pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Prototype1.6.0.3</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\prototype-1.6.0.3.js</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Prototype是一个有历史的JS类库，TeamBiz中主要使用了它的Ajax部分及$函数。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">注意，</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz并非对Prototype产生依赖，Prototype为Teambiz提供的仅是Ajax.Rquest对象及$函数而已，因为teambiz已经包含了普适版本的$函数，因此换用别的JS框架并不困难。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">AjaxAction</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\AjaxAction.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">AjaxAction是所有响应Ajax异步请求的Action的基类，它主要提供以下四项功能：</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.设置Response；</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.将url中的请求参数解码后放入RequestParamMap对象中；</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.强制子类实现函数process；</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4.当子类的process函数中出现异常时，接受异常并包装成XML传给前台页面。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\base\RequestParamMap.java</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap内部包含一个哈希表，以键值对的方式存储前台URL中的参数及其值。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">RequestParamMap对象的生成在于AjaxAction的getRequestParamMap函数中。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">它主要提供以下功能：</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.将参数集约化，此举能简化后台函数的编写。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.当后台函数使用其内部不存在的参数时，它能自主抛出一个异常，通过AjaxAction的包装传给前台，使得编写函数的程序员能快速进行错误定位。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.对前台编写的参数进行UTF-8解码，此举与前台对URL进行两次UTF8编码配合，统一解决了非ASC码字符传送产生乱码的问题。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Ajax.Request</span></strong></p>   </td>   <td style="width:176.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="235">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">定义于</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">prototype-1.6.0.3.js中</span></p>   </td>   <td style="width:171.9pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="229">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Prototype中定义的Ajax请求对象，其参数有四个，URL，请求方法，成功函数和失败函数。相对于传统方式，它的可控性更高。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第三部分：前台和后台的约定</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">考虑到代码解读和人工解读的双重便利性，</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz采用XML而不是JSON作为前后台数据的载体，此XML采用了一些约定以规范化编码。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Ajax异步调用过程中，后台需要两组数据来说明响应细节，一个是状态，如果它的值是OK的话，说明已经取得了请求想要的数据，此时向前台传出的XML会类似如下格式：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;response&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;status&gt;ok&lt;/status&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;node&gt;</span></p>  <p style="margin-left:.5in;text-indent:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;a&gt;a&lt;/a&gt;</span></p>  <p style="margin-left:.5in;text-indent:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;b&gt;b&lt;/b&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/node&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/response&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">如果它的值是</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NG的话，说明后台能响应，但由于某种原因（用户未登录，用户缺乏权限，参数缺失，后台组件尚未就绪，异常抛出等，前二者需要程序员编码，后两者框架已经代为实现），不能传回请求想要的数据，此时向前台传出的XML会类似如下格式：</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;response&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;status&gt;ng&lt;/status&gt;</span></p>  <p style="margin-left:.5in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;text&gt;请登录后再来执行此操作&lt;/text&gt;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/response&gt;</span></p>  <p>&nbsp;</p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">后台进行如上约定后，前台就可以采用如下统一的格式来处理</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">XHR响应：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">new Ajax.Request(url,{&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method:'get',&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onSuccess: function(ajaxObj){&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // alert(ajaxObj.responseText);&nbsp;&nbsp; // 这里不要随意删去，有时需要打开屏蔽以观察后台传来的XML文本&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var status=ajaxObj.responseXML.getElementsByTagName("status")[0].firstChild.data;</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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;&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; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(status=="ok"){</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; ....// 状态为ok时的处理</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&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; ....// 状态为ng时的处理</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp;&nbsp;&nbsp;&nbsp; </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onFailure: function(){ </span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....// 后台没有响应时的处理</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<span>&nbsp;&nbsp; </span></span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">);</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第四部分：使用步骤</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">步骤</span></strong></p>   </td>   <td style="width:153.0pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>   <td style="width:203.4pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">参照</span></strong></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在前台编写向后台发出请求的</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">JS函数。</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在此函数需要进行三件事：</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.编写URL。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.对URL进行UTF8编码。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.会使用一个Ajax.Request对象向后台发出请求。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\page\js\common.js中fetchMenuFromBg函数。</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在后台编写响应前端请求的</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Action</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">此</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Action需要继承自AjaxAction。在其process函数中主要进行以下三件事：</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.权限验证。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.使用后端组件取得前端想要的数据。</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.以XML方式将数据传回。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\src\com\ibm\heyang\action\menu\FetchMenuAction.java</span></p>   </td>  </tr>  <tr>   <td style="width:1.2in;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="115">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">在</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">struts-config.xml注册Action</span></strong></p>   </td>   <td style="width:153.0pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">由于完全不需要静态或动态的</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">form，此Action格式很简单，仅包含path，type和scope三部分。</span></p>   </td>   <td style="width:203.4pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="271">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">teambiz\WebRoot\WEB-INF\struts-config.xml中的</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;action   path="/FetchMenu" type="com.ibm.heyang.action.menu.FetchMenuAction"   scope="request" &gt;</span></p>   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">&lt;/action&gt;</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第五部分：小结</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz中全部向后台的请求都是通过Ajax异步方式实现的，相对于传统方式，它有以下优势：</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.由于只需要提取必要的资源，因此占用资源少。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">2.有多种状态，多个函数用来处理后台的响应，这使得控制更加多样化。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">3.由于前台在请求时处于静止状态，因此无需刻意保存前台页面数据。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">4.由于不需要编写form，forward等元素，使得控制文件编写简单方便。</span></p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:31 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>02.Teambiz程序流程示意图</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370960.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370960.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370960.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370960.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370960.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370960.html</trackback:ping><description><![CDATA[<img alt="" src="http://www.blogjava.net/images/blogjava_net/heyang/2012-2-29_01.jpg" /><img src ="http://www.blogjava.net/heyang/aggbug/370960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:30 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>01.Teambiz整体介绍</title><link>http://www.blogjava.net/heyang/archive/2012/02/29/370959.html</link><dc:creator>何杨</dc:creator><author>何杨</author><pubDate>Wed, 29 Feb 2012 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/heyang/archive/2012/02/29/370959.html</guid><wfw:comment>http://www.blogjava.net/heyang/comments/370959.html</wfw:comment><comments>http://www.blogjava.net/heyang/archive/2012/02/29/370959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heyang/comments/commentRss/370959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heyang/services/trackbacks/370959.html</trackback:ping><description><![CDATA[<div>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-size:16.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz整体介绍</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">作者：何杨</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">撰写日期：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">2012年2月27日</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">版本：</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">1.00</span></p>  <p style="text-align:center" align="center"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">更新日期： &nbsp;</span></p>  <p style="text-align:center" align="center">&nbsp;</p>  <p style="text-align:center" align="center">&nbsp;</p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第一部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz说明</span></strong></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz是一个处理团队成员之间事务的Web程序，用户可以使用它给自己或者别人规定任务，完成给自己的任务或是跟踪分给他人的事务。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz差异化的一点在于基本使用Ajax方式进行前后台交互，后台查询数据库后传回的是XML，前台进行解析并使用DOM进行页面操作。系统在前后台提供了一系列类来协助程序员完成常见编码任务，相信这能减轻程序员的负担并提高代码的一致性。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz是一个框架性说明程序，在此程序的基础上还可以完成扩充，如菜单改写成树样式，后台增加更多的领域对象和服务类等。</span></p>  <p><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz遗憾的一点在于没有解决当领域对象及其对应的表数据增加时系统复杂度的同时增加，也许再引入一个或多个中间层次能将熵维持在一个能控制的限度内，如果你知道怎么去做，请写信告诉我。(heyanghy@cn.ibm.com,heyang78@gmail.com)</span></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz使用的框架</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:347.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Stuts1.3.8</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz使用了Struts的控制层功能和Tile及极少数标签。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Spring2.5</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz使用了Spring的IoC和JDBCTemplate。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Hibernate3.0</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz使用Hibernate进行单个领域对象的创建和更新。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Prototype1.6.0.3</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">Teambiz使用了Prototype的Ajax.Request,$,window.load三部分。</span></p>   </td>  </tr> </tbody></table>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">第二部分：</span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">TeamBiz其它相关事项</span></strong></p>  <table style="border-collapse:collapse;border:none;" border="1" cellpadding="0" cellspacing="0">  <tbody><tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">名称</span></strong></p>   </td>   <td style="width:347.45pt;border:solid #B3CC82 1.0pt;border-left:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;   text-align:center;line-height:normal;" align="center"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">说明</span></strong></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">数据库</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#CDDDAC;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MySql5.2，如果需要更换数据库，请修改teambiz\cfg\appctx-datasource.xml中数据源配置并检查Dao类中诸Sql是否能在新数据库中正常运行。</span></p>   </td>  </tr>  <tr>   <td style="width:94.45pt;border:solid #B3CC82 1.0pt;border-top:none;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="126">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal;"><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">开发环境</span></strong></p>   </td>   <td style="width:347.45pt;border-top:none;border-left:   none;border-bottom:solid #B3CC82 1.0pt;border-right:solid #B3CC82 1.0pt;background:#E6EED5;padding:0in 5.4pt 0in 5.4pt" valign="top" width="463">   <p style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">MyEclipse9，将程序包导入即可运行。</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  </div><img src ="http://www.blogjava.net/heyang/aggbug/370959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heyang/" target="_blank">何杨</a> 2012-02-29 10:25 <a href="http://www.blogjava.net/heyang/archive/2012/02/29/370959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>