<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>what is the RIA?  just it…&#124;&#124;咖啡兔个人作品</title>
	<atom:link href="http://www.wsria.cn/archives/category/works/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wsria.cn</link>
	<description>我们要的就是RIA……Let&#039;s do it now.</description>
	<lastBuildDate>Tue, 24 Aug 2010 01:46:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>为jstree添加双击事件切换[展开/收缩]功能</title>
		<link>http://www.wsria.cn/archives/989</link>
		<comments>http://www.wsria.cn/archives/989#comments</comments>
		<pubDate>Sat, 19 Jun 2010 03:36:10 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[jstree]]></category>
		<category><![CDATA[双击]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=989</guid>
		<description><![CDATA[让jstree支持双击[展开/收缩]功能]]></description>
			<content:encoded><![CDATA[<h2 class="title">一、概述</h2>
<p><a href="http://www.jstree.com" target="_self">jstree</a>是一个基于jQuery开发的优秀树插件，能够快速生成美观实用的树；目前项目中使用了这个插件遇到了一点问题，以前使用simpletree的时候可以<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%8f%8c%e5%87%bb" title="查看 双击 中所有日志" target="_blank">双击</a></span>父节点[<strong>展开/收缩</strong>]子节点，但是好像<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jstree" title="查看 jstree 中所有日志" target="_blank">jstree</a></span>没有提供这个功能，所以只有自己开发了。</p>
<p>使用的<strong>版本号</strong>：jsTree 1.0-rc1<br />
没有添加<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%8f%8c%e5%87%bb" title="查看 双击 中所有日志" target="_blank">双击</a></span>功能时：<a href="http://www.wsria.cn/demo/jstree/jstreeNormal.html" target="_blank">http://www.wsria.cn/demo/jstree/jstreeNormal.html</a></p>
<h2 class="title">二、分析源码</h2>
<p><span id="more-989"></span><br />
因为现在要做的是监听双击事件所以在源码中查找[<strong>dblclick</strong>]，在整篇源代码中只有一个地方出现了<strong>dblclick</strong>，这就容易多了；</p>
<p>在第<strong>297</strong>行处，代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dblclick.jstree&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> sel<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">selection</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> document.<span style="color: #660066;">selection</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> document.<span style="color: #660066;">selection</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">getSelection</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			sel <span style="color: #339933;">=</span> window.<span style="color: #660066;">getSelection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
				sel.<span style="color: #660066;">removeAllRanges</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				sel.<span style="color: #660066;">collapse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>先不要看这些代码的意思，除非你想深入了解<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jstree" title="查看 jstree 中所有日志" target="_blank">jstree</a></span>的细节</p>
<h2 class="title">三、修改源码</h2>
<p>在修改源码之前先考虑一个问题，点击树左边的三角符号是怎么触发的事件，答案很简单，在源码中查找<strong>click.jstree</strong>，也就是第<strong>290</strong>行代码处，这里最主要的一句话就是</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">toggle_node</span><span style="color: #009900;">&#40;</span>trgt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>，调用了jstree提供的toggle_node方法，也就是可以切换[<strong>展开/收缩</strong>]树节点，很好，我们可以借用一下</p>
<p>在298行代码处加入两行代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> trgt <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">target</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ins'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$jstree.<span style="color: #660066;">toggle_node</span><span style="color: #009900;">&#40;</span>trgt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这里使用的$jstree定义在283行的</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">init	<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></div></div>

<p>之后，</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> $jstree <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span></pre></div></div>

<p>，用$jstree引用jstree对象以便调用提供的接口；<br />
现在解释一下298行添加的那两行代码，第一行查询到<code>ins</code>标签，第二行调用jstree的toggle_node切换树分支的展开和收缩；<br />
至此大功告成！</p>
<h2 class="title">四、结果演示</h2>
<p>有双击功能的演示：<a href="http://www.wsria.cn/demo/jstree/jstreeWithDblclick.html" target="_blank">http://www.wsria.cn/demo/jstree/jstreeWithDblclick.html</a></p>
<h2 class="title">五、程序下载</h2>
<p>下载：<a href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=30" title="版本：1.0-rc1-dblclick，类别：[jQuery]，描述：带双击[展开/收缩]树节点的jstree修改版本">jquery.jstree.dblclick.js</a>&nbsp;共&nbsp;147&nbsp;次
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/989">http://www.wsria.cn/archives/989 | 为jstree添加双击事件切换[展开/收缩]功能</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li>没有找到.</li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=989&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/989/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>新年新气象，博客新面貌</title>
		<link>http://www.wsria.cn/archives/827</link>
		<comments>http://www.wsria.cn/archives/827#comments</comments>
		<pubDate>Sat, 27 Feb 2010 09:24:52 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[博客公告]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[博客]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=827</guid>
		<description><![CDATA[感谢大家一年来对我的支持，一年来发布了一些技术文章和一个基于Java（SSH架构）、jQuery的开源系统，得到了网友的支持，今年也会多多发表博文，和广大网友共同进步，将技术进行到底…… 这次更换主题添加了几个插件，例如：评分和目前的Buzz推荐文章等等……以后会增加其他功能，敬请期待，当然这些都是次要的 今年计划在6月份前推出基于Strtus2版本的开源账务管理系统 声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。 转载请注明转自 what is the RIA? just it…&#124;&#124;咖啡兔 &#8482; 原始链接:http://www.wsria.cn/archives/827 &#124; 新年新气象，博客新面貌 相关文章 实例解析java + jQuery + json工作过程(登录)( 8 ) 申请友链及说明( 8 ) 从Google搜索联想到了jQuery( 0 ) 关于本站开源项目finance的演示视频和源代码不能下载说明( 1 ) 推荐jQuery插件系列——表单验证formValidator( 2 ) jQuery 1.4.1 中文文档 CHM 版发布( 1 ) jQuery入门教程PPT( 1 ) 一行jQuery代码打印九九乘法表( 2 ) &#169;2010 what is the RIA? just it…&#124;&#124;咖啡兔. [...]]]></description>
			<content:encoded><![CDATA[<p>感谢大家一年来对我的支持，一年来发布了一些技术文章和一个基于Java（SSH架构）、<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>的开源系统，得到了网友的支持，今年也会多多发表博文，和广大网友共同进步，将技术进行到底……<br />
这次更换主题添加了几个插件，例如：评分和目前的Buzz推荐文章等等……以后会增加其他功能，敬请期待，当然这些都是次要的</p>
<p><!--easy2hide start-->今年计划在6月份前推出基于Strtus2版本的开源账务管理系统<!--easy2hide end-->
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%8d%9a%e5%ae%a2" title="查看 博客 中所有日志" target="_blank">博客</a></span>。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/827">http://www.wsria.cn/archives/827 | 新年新气象，博客新面貌</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/202" title="15天学会jquery" rel="bookmark inlinks">15天学会jquery</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/918" title="直逼 Flash 的流畅感：jQuery 运动特效展示" rel="bookmark inlinks">直逼 Flash 的流畅感：jQuery 运动特效展示</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/733" title="推荐：2009 年度最佳 jQuery 插件" rel="bookmark inlinks">推荐：2009 年度最佳 jQuery 插件</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/818" title="[转][推荐]程序员们，请珍爱自己的身体" rel="bookmark inlinks">[转][推荐]程序员们，请珍爱自己的身体</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
<li><a href="http://www.wsria.cn/archives/655" title="《疯狂程序员》一书中的"奥秘"" rel="bookmark inlinks">《疯狂程序员》一书中的&#8221;奥秘&#8221;</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/974" title="[转][推荐]15 个 JavaScript Web UI 库" rel="bookmark inlinks">[转][推荐]15 个 JavaScript Web UI 库</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/1147" title="利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)" rel="bookmark inlinks">利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)</a><span class="count">( 5 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=827&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/827/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>分享：Java日期工具类</title>
		<link>http://www.wsria.cn/archives/785</link>
		<comments>http://www.wsria.cn/archives/785#comments</comments>
		<pubDate>Fri, 15 Jan 2010 06:27:34 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[解决方案]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=785</guid>
		<description><![CDATA[平常开发中积累了一些，可能会和其他有重复，发上来按需取舍 包括：日期格式化、日期相加、日期排序等 因为在项目中要对一组无序日期排序并分组就写了一个方法， /** * 日期分组&#60;br/&#62; * 能够对指定日期列表按照连续性分组&#60;br/&#62; * 例如：[2010-01-15, 2010-01-16, 2010-01-17, 2010-01-20, 2010-01-21, 2010-01-25]&#60;br/&#62; * 分组结果为：&#60;br/&#62; * &#60;ul&#62; * &#60;li&#62;[2010-01-15, 2010-01-16, 2010-01-17]&#60;/li&#62; * &#60;li&#62;[2010-01-20, 2010-01-21]&#60;/li&#62; * &#60;li&#62;[2010-01-25]&#60;/li&#62; * &#60;/ul&#62; * @param dates 日期对象 * @return 连续性分组结果 */ public static List&#60;List&#60;Date&#62;&#62; groupDates&#40;List&#60;Date&#62; dates&#41; &#123;&#125; 感觉以后会用到所以放上来共享 下面是源码，也可以访问：http://code.google.com/p/finance-p/source/browse/trunk/WEB-INF/src/net/yanhl/util/DateUtil.java下载 1 2 3 4 5 6 7 8 9 [...]]]></description>
			<content:encoded><![CDATA[<p>平常开发中积累了一些，可能会和其他有重复，发上来按需取舍<br />
包括：日期格式化、日期相加、日期排序等<br />
因为在项目中要对一组无序日期排序并分组就写了一个方法，</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * 日期分组&lt;br/&gt;
 * 能够对指定日期列表按照连续性分组&lt;br/&gt;
 * 例如：[2010-01-15, 2010-01-16, 2010-01-17, 2010-01-20, 2010-01-21, 2010-01-25]&lt;br/&gt;
 * 分组结果为：&lt;br/&gt;
 * &lt;ul&gt;
 * &lt;li&gt;[2010-01-15, 2010-01-16, 2010-01-17]&lt;/li&gt;
 * &lt;li&gt;[2010-01-20, 2010-01-21]&lt;/li&gt;
 * &lt;li&gt;[2010-01-25]&lt;/li&gt;
 * &lt;/ul&gt;
 * @param dates	日期对象
 * @return	连续性分组结果
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> List<span style="color: #339933;">&lt;</span>List<span style="color: #339933;">&lt;</span>Date<span style="color: #339933;">&gt;&gt;</span> groupDates<span style="color: #009900;">&#40;</span>List<span style="color: #339933;">&lt;</span>Date<span style="color: #339933;">&gt;</span> dates<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>感觉以后会用到所以放上来共享<br />
<span id="more-785"></span><br />
下面是<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e6%ba%90%e7%a0%81" title="查看 源码 中所有日志" target="_blank">源码</a></span>，也可以访问：<a href="http://code.google.com/p/finance-p/source/browse/trunk/WEB-INF/src/net/yanhl/util/DateUtil.java">http://code.google.com/p/finance-p/source/browse/trunk/WEB-INF/src/net/yanhl/util/DateUtil.java</a>下载</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.DateFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.ParseException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.SimpleDateFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Calendar</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Collections</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Comparator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Date</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.List</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.yanhl.util.ReadProperties</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.yanhl.util.StringUtil</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.configuration.ConfigurationException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.lang.StringUtils</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
&nbsp;
&lt;strong&gt;Title：&lt;/strong&gt; 日期工具类
&nbsp;
 *
&nbsp;
&lt;strong&gt;Description：&lt;/strong&gt;
&nbsp;
 *
 * @author Henry Yan
 * @since  1.0
 * @version 1.0.0.20090605
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateUtil <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> FORMAT_DATE <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;yyyy-MM-dd&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> FORMAT_DATETIME <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm:ss&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> FORMAT_DATE_ZH <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;yyyy年MM月dd日&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> FORMAT_DATETIME_ZH <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;yyyy年MM月dd日 HH时mm分ss秒&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> TYPE_DATE <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;date&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> TYPE_DATETIME <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;datetime&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 日期排序类型-升序
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> DATE_ORDER_ASC <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 日期排序类型-降序
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> DATE_ORDER_DESC <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 用字符串获得日期
	 * @throws ParseException
	 * @dateValue 日期字符串
	 * @dateType 格式化的类型,date和datetime
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">Date</span> getDate<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> dateValue, <span style="color: #003399;">String</span> dateType<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">ParseException</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATE<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">SimpleDateFormat</span> sfdate <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">return</span> sfdate.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATETIME<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">SimpleDateFormat</span> sftime <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATETIME<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">return</span> sftime.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 用字符串获得java.sql.Date日期
	 * @throws ParseException
	 * @dateValue 日期字符串
	 * @dateType 格式化的类型,date和datetime
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> getSqlDate<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> dateValue, <span style="color: #003399;">String</span> dateType<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">ParseException</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Date</span> date <span style="color: #339933;">=</span> getDate<span style="color: #009900;">&#40;</span>dateValue, dateType<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>date <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span>date.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 *将日期加上某些天或减去天数)返回字符串
	 * @param date 待处理日期
	 * @param to 加减的天数
	 * @return 日期
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">Date</span> dateAdd<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> date, <span style="color: #000066; font-weight: bold;">int</span> to<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		java.<span style="color: #006633;">util</span>.<span style="color: #003399;">Date</span> d <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			d <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			d <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">util</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #003399;">Calendar</span> strDate <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DATE</span>, to<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 日期减 如果不够减会将月变动</span>
		<span style="color: #000000; font-weight: bold;">return</span> strDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 *将日期加上某些天或减去天数)返回字符串
	 * @param date 待处理日期
	 * @param to 加减的天数
	 * @return 日期
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> dateAdd<span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> date, <span style="color: #000066; font-weight: bold;">int</span> to<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Calendar</span> strDate <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DATE</span>, to<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 日期减 如果不够减会将月变动</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span>strDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 格式化日期
	 * @param date		日期对象
	 * @param splitChar	分隔字符
	 * @return
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> formatDate<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> date, <span style="color: #003399;">String</span> splitChar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span> sfdate <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy&quot;</span> <span style="color: #339933;">+</span> splitChar
				<span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;MM&quot;</span> <span style="color: #339933;">+</span> splitChar <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;dd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> sfdate.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * @dateValue 日期对象，可以是java.util.Date和java.sql.Date
	 * @dateType 格式化的类型,date和datetime
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> format<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> dateValue, <span style="color: #003399;">String</span> dateType<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #000000; font-weight: bold;">instanceof</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> dateValue.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #000000; font-weight: bold;">instanceof</span> java.<span style="color: #006633;">util</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATE<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span> sfdate <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span> sfdate.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATETIME<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span> sftime <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATETIME<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span> sftime.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;非法日期格式[&quot;</span> <span style="color: #339933;">+</span> dateType <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;]&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;非日期类型&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 转换日期对象为中文化日期
	 * @dateValue 日期对象，可以是java.util.Date和java.sql.Date
	 * @dateType 格式化的类型,date和datetime
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> formatZh<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> dateValue, <span style="color: #003399;">String</span> dateType<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #000000; font-weight: bold;">instanceof</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> dateValue.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateValue <span style="color: #000000; font-weight: bold;">instanceof</span> java.<span style="color: #006633;">util</span>.<span style="color: #003399;">Date</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATE<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span> sfdate <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATE_ZH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span> sfdate.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dateType.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>TYPE_DATETIME<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span> sftime <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">text</span>.<span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span>FORMAT_DATETIME_ZH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span> sftime.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>dateValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;非法日期格式[&quot;</span> <span style="color: #339933;">+</span> dateType <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;]&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;非日期类型&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	   * 转化成年月日期
	   * @param sDate          字符型日期：2009-02-02
	   * @param DelimeterChar  分割符号比如 / -
	   * @return               年月日期 :2009年02月02日
	   */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> chDateChange<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> sDate, <span style="color: #003399;">String</span> DelimeterChar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> sDate.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span>DelimeterChar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;年&quot;</span><span style="color: #339933;">;</span>
		tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;月&quot;</span><span style="color: #339933;">;</span>
		tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;日&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> tmpArr<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 得到系统日期
	 * @return YYYY-MM-DD
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> getSysdate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Timestamp</span> timeNow <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Timestamp</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">System</span>.<span style="color: #006633;">currentTimeMillis</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> timeNow.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 得到某天是周几
	 * @param strDay
	 * @return 周几
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> getWeekDay<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> strDay<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Date</span> day <span style="color: #339933;">=</span> DateUtil.<span style="color: #006633;">dateAdd</span><span style="color: #009900;">&#40;</span>strDay, <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Calendar</span> strDate <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>day<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> meStrDate <span style="color: #339933;">=</span> strDate.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_WEEK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> meStrDate<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 得到某天是周几
	 * @param strDay
	 * @return 周几
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> getWeekDay<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> date<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Date</span> day <span style="color: #339933;">=</span> DateUtil.<span style="color: #006633;">dateAdd</span><span style="color: #009900;">&#40;</span>format<span style="color: #009900;">&#40;</span>date, <span style="color: #0000ff;">&quot;date&quot;</span><span style="color: #009900;">&#41;</span>, <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Calendar</span> strDate <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		strDate.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>day<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> meStrDate <span style="color: #339933;">=</span> strDate.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_WEEK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> meStrDate<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 取得两个日期段的日期间隔
	 *
	 * @author color
	 * @param t1
	 *            时间1
	 * @param t2
	 *            时间2
	 * @return t2 与t1的间隔天数
	 * @throws ParseException
	 *             如果输入的日期格式不是0000-00-00 格式抛出异常
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> getBetweenDays<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> t1, <span style="color: #003399;">String</span> t2<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">ParseException</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">DateFormat</span> format <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> betweenDays <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Date</span> d1 <span style="color: #339933;">=</span> format.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span>t1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Date</span> d2 <span style="color: #339933;">=</span> format.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span>t2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		betweenDays <span style="color: #339933;">=</span> getBetweenDays<span style="color: #009900;">&#40;</span>d1, d2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> betweenDays<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 取得两个日期段的日期间隔
	 * @param d1	日期1
	 * @param d2	日期2
	 * @return	t2 与t1的间隔天数
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> getBetweenDays<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> d1, <span style="color: #003399;">Date</span> d2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d1 <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> d2 <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">int</span> betweenDays<span style="color: #339933;">;</span>
		<span style="color: #003399;">Calendar</span> c1 <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Calendar</span> c2 <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		c1.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		c2.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// 保证第二个时间一定大于第一个时间</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c1.<span style="color: #006633;">after</span><span style="color: #009900;">&#40;</span>c2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			c2.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			c1.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">int</span> betweenYears <span style="color: #339933;">=</span> c2.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		betweenDays <span style="color: #339933;">=</span> c2.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_YEAR</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_YEAR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> betweenYears<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 			c1.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span>, <span style="color: #009900;">&#40;</span>c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 			betweenDays <span style="color: #339933;">+=</span> c1.<span style="color: #006633;">getMaximum</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_YEAR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #009900;">&#125;</span> 		<span style="color: #000000; font-weight: bold;">return</span> betweenDays<span style="color: #339933;">;</span> 	<span style="color: #009900;">&#125;</span> 	 	<span style="color: #008000; font-style: italic; font-weight: bold;">/** 	 * 判断指定日期是否在一个日期范围内 	 * @param fromDate	范围开始日期 	 * @param toDate	范围结束日期 	 * @param testDate	测试日期 	 * @return	在范围内true,否则false 	 */</span> 	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> betweenDays<span style="color: #009900;">&#40;</span>java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> fromDate, java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> toDate, java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> testDate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>fromDate <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> toDate <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> testDate <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span> 		<span style="color: #009900;">&#125;</span> 		 		<span style="color: #666666; font-style: italic;">//1、 交换开始和结束日期 		if (fromDate.getTime() &amp;gt; toDate.getTime()) {</span>
			java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> tempDate <span style="color: #339933;">=</span> fromDate<span style="color: #339933;">;</span>
			fromDate <span style="color: #339933;">=</span> toDate<span style="color: #339933;">;</span>
			toDate <span style="color: #339933;">=</span> tempDate<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//2、缩小范围</span>
		<span style="color: #000066; font-weight: bold;">long</span> testDateTime <span style="color: #339933;">=</span> testDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>testDateTime <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> fromDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> testDateTime <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> toDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #339933;">||</span> testDateTime <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> fromDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> testDateTime <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> toDate.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 得到指定年、月的最后一天
	 * @param year	年
	 * @param month	月
	 * @return	本年月的最后一天，如果2009,10，返回结果：2009-10-31
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> getLastDateDayOfMonth<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> year, <span style="color: #000066; font-weight: bold;">int</span> month<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Calendar</span> cal <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		cal.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span>, year<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		cal.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">MONTH</span>, month<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// 某年某月的最后一天</span>
		<span style="color: #000066; font-weight: bold;">int</span> lastDate <span style="color: #339933;">=</span> cal.<span style="color: #006633;">getActualMaximum</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DATE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> year <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;-&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>month <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;-&quot;</span> <span style="color: #339933;">+</span> lastDate<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 判断两个日期是否为同一天
	 * @param d1	日期一
	 * @param d2	日期二
	 * @return	同一天true，不是同一天false
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isSameDate<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> d1, <span style="color: #003399;">Date</span> d2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">boolean</span> result <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Calendar</span> c1 <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		c1.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003399;">Calendar</span> c2 <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		c2.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> c2.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span><span style="color: #009900;">&#41;</span>
				<span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">MONTH</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> c2.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">MONTH</span><span style="color: #009900;">&#41;</span>
				<span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> c1.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_MONTH</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> c2.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_MONTH</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			result <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> result<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 是否为周末
	 * @param strDate
	 * @return true|false
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isWeekend<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> strDate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> weekDay <span style="color: #339933;">=</span> getWeekDay<span style="color: #009900;">&#40;</span>strDate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>weekDay <span style="color: #339933;">==</span> <span style="color: #cc66cc;">6</span> <span style="color: #339933;">||</span> weekDay <span style="color: #339933;">==</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 是否为周末
	 * @param strDate
	 * @return true|false
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isWeekend<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> date<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> weekDay <span style="color: #339933;">=</span> getWeekDay<span style="color: #009900;">&#40;</span>format<span style="color: #009900;">&#40;</span>date, <span style="color: #0000ff;">&quot;date&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>weekDay <span style="color: #339933;">==</span> <span style="color: #cc66cc;">6</span> <span style="color: #339933;">||</span> weekDay <span style="color: #339933;">==</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 是否为法定节假日
	 * @param strDate
	 * @return true|false
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isHoliday<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> strDate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 是否为法定节假日
	 * @param strDate
	 * @return true|false
	 * @throws ConfigurationException 读取系统配置文件时
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isHoliday<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> date<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">ConfigurationException</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> specialDay <span style="color: #339933;">=</span> ReadProperties.<span style="color: #006633;">getSystemValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;specialDay&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 未设置法定节假日价格</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>StringUtils.<span style="color: #006633;">isEmpty</span><span style="color: #009900;">&#40;</span>specialDay<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> date <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">String</span> strDate <span style="color: #339933;">=</span> format<span style="color: #009900;">&#40;</span>date, StringUtil.<span style="color: #006633;">TYPE_DATE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> specialDays <span style="color: #339933;">=</span> specialDay.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>StringUtil.<span style="color: #006633;">hasInArray</span><span style="color: #009900;">&#40;</span>specialDays, strDate<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 日期排序
	 * @param dates		日期列表
	 * @param orderType	排序类型
	 * 			
{@link net.yanhl.util.DateUtil.DATE_ORDER_ASC}
&nbsp;
	 * 			{@link net.yanhl.util.DateUtil.DATE_ORDER_DESC}
	 * @return	排序结果
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">List</span> orderDate<span style="color: #009900;">&#40;</span><span style="color: #003399;">List</span> dates, <span style="color: #000066; font-weight: bold;">int</span> orderType<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		DateComparator comp <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DateComparator<span style="color: #009900;">&#40;</span>orderType<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">Collections</span>.<span style="color: #006633;">sort</span><span style="color: #009900;">&#40;</span>dates, comp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span> dates<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * 日期分组
&nbsp;
	 * 能够对指定日期列表按照连续性分组
&nbsp;
	 * 例如：[2010-01-15, 2010-01-16, 2010-01-17, 2010-01-20, 2010-01-21, 2010-01-25]
&nbsp;
	 * 分组结果为：
&nbsp;
	 *
&lt;ul&gt;
	 *
	&lt;li&gt;[2010-01-15, 2010-01-16, 2010-01-17]&lt;/li&gt;
*
	&lt;li&gt;[2010-01-20, 2010-01-21]&lt;/li&gt;
*
	&lt;li&gt;[2010-01-25]&lt;/li&gt;
*&lt;/ul&gt;
* @param dates	日期对象
	 * @return	连续性分组结果
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">List</span>
<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> groupDates<span style="color: #009900;">&#40;</span><span style="color: #003399;">List</span> dates<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">List</span>
<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> result <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span>
<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 按照升序排序</span>
		orderDate<span style="color: #009900;">&#40;</span>dates, DateUtil.<span style="color: #006633;">DATE_ORDER_ASC</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 临时结果</span>
		<span style="color: #003399;">List</span> tempDates <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 上一组最后一个日期</span>
		<span style="color: #003399;">Date</span> lastDate <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 当前读取日期</span>
		<span style="color: #003399;">Date</span> cdate <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> dates.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			cdate <span style="color: #339933;">=</span> dates.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// 第一次增加</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tempDates <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				tempDates <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				tempDates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>cdate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				result.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>tempDates<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #008000; font-style: italic; font-weight: bold;">/**
				 * 差距为1是继续在原有的列表中添加，大于1就是用新的列表
				 */</span>
				lastDate <span style="color: #339933;">=</span> tempDates.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>tempDates.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">int</span> days <span style="color: #339933;">=</span> getBetweenDays<span style="color: #009900;">&#40;</span>lastDate, cdate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>days <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					tempDates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>cdate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					tempDates <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					tempDates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>cdate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					result.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>tempDates<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> result<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> fromDate <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-10&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> toDate <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-11&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> testDate <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-12&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d1 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-13&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d2 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-16&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d3 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-17&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d4 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-18&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d5 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-20&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d6 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-21&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span> d7 <span style="color: #339933;">=</span> java.<span style="color: #006633;">sql</span>.<span style="color: #003399;">Date</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;2009-12-23&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">List</span> dates <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>fromDate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>toDate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>testDate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d5<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d6<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dates.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>d7<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">List</span>
<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> groupDates <span style="color: #339933;">=</span> groupDates<span style="color: #009900;">&#40;</span>dates<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">List</span> date <span style="color: #339933;">:</span> groupDates<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
&nbsp;
&lt;strong&gt;Title：&lt;/strong&gt;日期大小比较
&nbsp;
 *
&nbsp;
&lt;strong&gt;Description：&lt;/strong&gt;实现比较接口，按照排序类型[升序,降序]排列日期集合
&nbsp;
 *
 * @author Henry Yan
 * @since  1.0
 * @version 1.0.0.20091015
 */</span>
<span style="color: #000000; font-weight: bold;">class</span> DateComparator <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399;">Comparator</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">int</span> orderType<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> DateComparator<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> orderType<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">orderType</span> <span style="color: #339933;">=</span> orderType<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/* (non-Javadoc)
	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> compare<span style="color: #009900;">&#40;</span><span style="color: #003399;">Date</span> d1, <span style="color: #003399;">Date</span> d2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d1.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> d2.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>orderType <span style="color: #339933;">==</span> DateUtil.<span style="color: #006633;">DATE_ORDER_ASC</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d1.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> d2.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>orderType <span style="color: #339933;">==</span> DateUtil.<span style="color: #006633;">DATE_ORDER_DESC</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/785">http://www.wsria.cn/archives/785 | 分享：Java日期工具类</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
<li><a href="http://www.wsria.cn/archives/718" title="关于本站开源项目finance的演示视频和源代码不能下载说明" rel="bookmark inlinks">关于本站开源项目finance的演示视频和源代码不能下载说明</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/14" title="json-lib 出现net.sf.json.JSONException: There is a cycle in the hierarchy异常的解决办法" rel="bookmark inlinks">json-lib 出现net.sf.json.JSONException: There is a cycle in the hierarchy异常的解决办法</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/667" title="Hibernate的映射类型 hibernate mysql映射类型" rel="bookmark inlinks">Hibernate的映射类型 hibernate mysql映射类型</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/724" title="Json-lib 与 hibernate 共同使用的问题" rel="bookmark inlinks">Json-lib 与 hibernate 共同使用的问题</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/670" title="使用hibernate和json-lib时忽略属性和集合" rel="bookmark inlinks">使用hibernate和json-lib时忽略属性和集合</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/196" title="转：jquery1.2.6源码分析" rel="bookmark inlinks">转：jquery1.2.6源码分析</a><span class="count">( 0 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=785&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/785/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>关于本站开源项目finance的演示视频和源代码不能下载说明</title>
		<link>http://www.wsria.cn/archives/718</link>
		<comments>http://www.wsria.cn/archives/718#comments</comments>
		<pubDate>Sat, 17 Oct 2009 07:32:01 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[账务管理]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=718</guid>
		<description><![CDATA[废话不多说，感谢各位对博客的关注，之前本站提供了开源项目的视频和源代码下载服务，后来由于其他站点盗链博客流量过大所以把文件移到了google code上面提供下载服务，问题就出在这里了，现在我的账号被google code封了，暂时不能提供下载，需要的同学请EMAIL 给我，当然如果谁有服务器可以提供本人感激不尽…… Update 1： 开通了一个网盘，http://www.brsbox.com/yanhonglei，在wsria.cn目录中 声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。 转载请注明转自 what is the RIA? just it…&#124;&#124;咖啡兔 &#8482; 原始链接:http://www.wsria.cn/archives/718 &#124; 关于本站开源项目finance的演示视频和源代码不能下载说明 相关文章 分享：Java日期工具类( 2 ) 实例解析java + jQuery + json工作过程(获取JSON数据)( 1 ) Apache Asia Roadshow 2010 Juven Maven PPT和视频下载( 0 ) 转：jquery1.2.6源码分析( 0 ) 基于jQuery开发的账务管理系统(个人版)演示( 15 ) 工欲善其事，必先利其器( 4 ) 实例解析java + jQuery + json工作过程(登录)( 8 ) [...]]]></description>
			<content:encoded><![CDATA[<p>废话不多说，感谢各位对博客的关注，之前本站提供了<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%bc%80%e6%ba%90" title="查看 开源 中所有日志" target="_blank">开源</a></span>项目的<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/video" title="查看 视频 中所有日志" target="_blank">视频</a></span>和源代码下载服务，后来由于其他站点盗链博客流量过大所以把文件移到了google code上面提供下载服务，问题就出在这里了，现在我的账号被google code封了，暂时不能提供下载，需要的同学请EMAIL</p>
<div id="attachment_517" class="wp-caption alignleft" style="width: 174px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/gmailforyhl.png"><img class="size-full wp-image-517" title="gmailforyhl" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/gmailforyhl.png" alt="email to wsria.cn" width="164" height="21" /></a><p class="wp-caption-text">email to wsria.cn</p></div>
<p>给我，当然如果谁有服务器可以提供本人感激不尽……</p>
<p><strong>Update 1：</strong></p>
<p>开通了一个网盘，<a href="http://www.brsbox.com/yanhonglei">http://www.brsbox.com/yanhonglei</a>，在wsria.cn目录中
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/718">http://www.wsria.cn/archives/718 | 关于本站开源项目finance的演示视频和源代码不能下载说明</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/1139" title="Apache Asia Roadshow 2010 Juven Maven PPT和视频下载" rel="bookmark inlinks">Apache Asia Roadshow 2010 Juven Maven PPT和视频下载</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/73" title="基于jQuery开发的账务管理系统(个人版)演示" rel="bookmark inlinks">基于jQuery开发的账务管理系统(个人版)演示</a><span class="count">( 15 )</span></li>
<li><a href="http://www.wsria.cn/archives/785" title="分享：Java日期工具类" rel="bookmark inlinks">分享：Java日期工具类</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/827" title="新年新气象，博客新面貌" rel="bookmark inlinks">新年新气象，博客新面貌</a><span class="count">( 3 )</span></li>
<li><a href="http://www.wsria.cn/archives/611" title="站点GBK编码下jQuery Ajax中文乱码解决方案" rel="bookmark inlinks">站点GBK编码下jQuery Ajax中文乱码解决方案</a><span class="count">( 22 )</span></li>
<li><a href="http://www.wsria.cn/archives/136" title="基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)" rel="bookmark inlinks">基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</a><span class="count">( 23 )</span></li>
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
<li><a href="http://www.wsria.cn/archives/300" title="实例解析java + jQuery + json工作过程(登录)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(登录)</a><span class="count">( 8 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=718&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/718/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>实例解析java + jQuery + json工作过程(获取JSON数据)</title>
		<link>http://www.wsria.cn/archives/369</link>
		<comments>http://www.wsria.cn/archives/369#comments</comments>
		<pubDate>Sat, 28 Feb 2009 10:39:27 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[项目]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json-lib]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=369</guid>
		<description><![CDATA[实例解析Java、jQuery前后台使用JSON数据交互过程]]></description>
			<content:encoded><![CDATA[<p>前天刚刚写的一篇关于《<a title=" 实例解析java + ajax(jQuery) + json工作过程(登录) " href="http://www.wsria.cn/archives/300" target="_blank">实例解析java + ajax(jQuery) + json工作过程(登录)</a>》的文章引起了网友们的关注和好评，</p>
<p><span id="more-369"></span>自从本站的<a title="查看关于账务系统的文章" href="http://www.wsria.cn/finance" target="_blank">账务管理系统(个人版)开源</a> 以后很多网友询问系统的实现方式，我一一解释……，为此今天写文章详细讲解系统功能的实现细节。</p>
<p>以本站的开源项目账务管理系统的“债务人”模块为例子讲解</p>
<h2>一、效果预览</h2>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 426px"><img class="size-full wp-image-387" title="userdetail1" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/userdetail1.png" alt="债务人详细页面效果预览" width="416" height="385" /><p class="wp-caption-text">债务人详细页面效果预览</p></div>
<h2>二、实现方式</h2>
<blockquote><p>基本思想就是绑定列表中的人员名称触发事件，获得当前人员的ID发送ajax请求到后台，后台根据ID查询详细信息，返回JSON数据结果至前台，前台通过对话框组件显示人员详细</p></blockquote>
<p><strong>1、绑定click事件到列表的人员名称</strong><br />
在项目中的iouser/js/iouser.js文件中有这样一个方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * 点击名称弹出详细
 */</span>
<span style="color: #003366; font-weight: bold;">function</span> regShowDetail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;span[name=iouid]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		showDetail<span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[name=chk]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>通过regShowDetail绑定了点击人员时执行showDetail的事件，</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[name=chk]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #006600; font-style: italic;">//上面这句话就是获得列表左侧的复选框的value值以便传送给后台</span></pre></div></div>

<ul>
<li>下面介绍一下<strong>showDetail</strong><em>方法的功能实现：</em></li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> <span style="color: #339933;">*</span> 查看用户详细资料
 <span style="color: #339933;">*</span> <span style="color: #339933;">@</span>param <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span> userId 用户ID
 <span style="color: #339933;">*/</span>
<span style="color: #003366; font-weight: bold;">function</span> showDetail<span style="color: #009900;">&#40;</span>userId<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// 创建一个对话框组件</span>
	<span style="color: #003366; font-weight: bold;">var</span> dialog <span style="color: #339933;">=</span> $.<span style="color: #660066;">weeboxs</span>.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'showDetail.html'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
		title<span style="color: #339933;">:</span> <span style="color: #3366CC;">'正在加载用户信息……'</span><span style="color: #339933;">,</span>
		contentType<span style="color: #339933;">:</span> <span style="color: #3366CC;">'ajax'</span><span style="color: #339933;">,</span>
		width<span style="color: #339933;">:</span> <span style="color: #CC0000;">600</span><span style="color: #339933;">,</span>
		height<span style="color: #339933;">:</span> <span style="color: #CC0000;">350</span><span style="color: #339933;">,</span>
		animate<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		clickClose<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		type<span style="color: #339933;">:</span> <span style="color: #3366CC;">'wee'</span><span style="color: #339933;">,</span>
		showOk<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		cancelBtnName<span style="color: #339933;">:</span> <span style="color: #3366CC;">'关 闭'</span><span style="color: #339933;">,</span>
		onopen<span style="color: #339933;">:</span> innerShowDetail
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//内部函数，实现债务人详细信息的载入、设置值</span>
	<span style="color: #003366; font-weight: bold;">function</span> innerShowDetail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// 获得JSON格式的数据</span>
		$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load.do'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>id <span style="color: #339933;">:</span> userId<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #006600; font-style: italic;">// 根据key设置value</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>key <span style="color: #000066; font-weight: bold;">in</span> json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'id'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #006600; font-style: italic;">// 没有值设置为空</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'?'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'sex'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'0'</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">'女'</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">'男'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'group'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'groupName'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #006600; font-style: italic;">//设置对话框标题和内容</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeAttr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'class'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			dialog.<span style="color: #660066;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'查看人员['</span> <span style="color: #339933;">+</span> json<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'userName'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">']详细资料'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			dialog.<span style="color: #660066;">setContent</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<ul>
<li><em>showDetail</em>方法首先打开一个<a title="本系统使用的对话框插件简介" href="http://www.wsria.cn/archives/342" target="_blank">对话框组件</a> 加载一个静态的模板<a title="查看showDetail.html文件内容  on googlecode" href="http://code.google.com/p/finance-p/source/browse/trunk/iouser/showDetail.html" target="_blank"><em><strong>showDetail.html</strong></em></a>
<ul>
<li> 文件中的ID都是根据信息点命名的，这样便于通过ID设置值</li>
</ul>
</li>
<li>通过路径<strong>load.do</strong> 请求后台查询人员详细，后台处理类为net.yanhl.iouser.action.IOUserAction的loadUser()方法，代码请<a title="加载人员详细的后台源码" href="http://code.google.com/p/finance-p/source/browse/trunk/WEB-INF/src/net/yanhl/iouser/action/IOUserAction.java" target="_blank">点击这里查看</a>
<ul>
<li> 怎么查询一个POJO对象就介绍了，重点说明怎么返回JSON格式的数据</li>
<li>这里还是使用java语言使用的JSON工具<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib，关于<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib的资料上篇文章也已介绍，这里不再重复；

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// 获取一个Iouser对象，包含债务人的信息</span>
Iouser user <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Iouser<span style="color: #009900;">&#41;</span> getBaseManager<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>Iouser.<span style="color: #000000; font-weight: bold;">class</span>, iouserId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//使用json-lib工具把一个POJO对象解析为一个JSON格式数据</span>
JSONObject jsonObject <span style="color: #339933;">=</span> JSONObject.<span style="color: #006633;">fromObject</span><span style="color: #009900;">&#40;</span>user, config<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//向前台发送结果集</span>
print<span style="color: #009900;">&#40;</span>response, jsonObject.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>最中返回的结果集如下：</p>
<blockquote><p>{<br />
&#8220;age&#8221; : 56,<br />
&#8220;companyAddress&#8221; : &#8220;32&#8243;,<br />
&#8220;companyName&#8221; : &#8220;未知&#8221;,<br />
&#8220;companyPhone&#8221; : &#8220;&#8211;&#8221;,<br />
&#8220;companyZip&#8221; : &#8220;&#8221;,<br />
&#8220;createDate&#8221; : null,<br />
&#8220;creatorId&#8221; : 1,<br />
&#8220;group&#8221; : {<br />
&#8220;childSize&#8221; : 0,<br />
&#8220;createDate&#8221; : {<br />
&#8220;date&#8221; : 27,<br />
&#8220;day&#8221; : 6,<br />
&#8220;hours&#8221; : 0,<br />
&#8220;minutes&#8221; : 0,<br />
&#8220;month&#8221; : 11,<br />
&#8220;nanos&#8221; : 0,<br />
&#8220;seconds&#8221; : 0,<br />
&#8220;time&#8221; : 1230307200000,<br />
&#8220;timezoneOffset&#8221; : -480,<br />
&#8220;year&#8221; : 108<br />
},<br />
&#8220;creatorId&#8221; : 1,<br />
&#8220;groupName&#8221; : &#8220;商务&#8221;,<br />
&#8220;id&#8221; : 33,<br />
&#8220;orderNum&#8221; : 0,<br />
&#8220;remark&#8221; : &#8220;&#8221;<br />
},<br />
&#8220;homeAddress&#8221; : &#8220;香港九龙&#8221;,<br />
&#8220;homePhone&#8221; : &#8220;&#8221;,<br />
&#8220;homeZip&#8221; : &#8220;&#8221;,<br />
&#8220;id&#8221; : 12,<br />
&#8220;mobilePhone&#8221; : &#8220;15856453456&#8243;,<br />
&#8220;orderNum&#8221; : 0,<br />
&#8220;remark&#8221; : &#8220;香港富豪&#8221;,<br />
&#8220;sex&#8221; : &#8220;1&#8243;,<br />
&#8220;userName&#8221; : &#8220;李嘉诚&#8221;<br />
}</p></blockquote>
</li>
</ul>
</li>
<li> 前台获得了结果集之后就可以根据key获得value来设置详细页面的内容了，代码如下：

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>key <span style="color: #000066; font-weight: bold;">in</span> json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #3366CC;">'id'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#detailDiv #'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>至此就是我们刚刚看到的效果了，是不是很简单O(∩_∩)O~</li>
</ul>
<p>附：</p>
<ul>
<li><a href="http://www.wsria.cn/archives/73" target="_blank">系统效果预览：http://www.wsria.cn/archives/73</a></li>
<li><a href="http://www.wsria.cn/archives/73" target="_blank">系统源码下载：http://www.wsria.cn/archives/73</a></li>
</ul>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/369">http://www.wsria.cn/archives/369 | 实例解析java + jQuery + json工作过程(获取JSON数据)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/333" title="jQuery入门教程PPT" rel="bookmark inlinks">jQuery入门教程PPT</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/724" title="Json-lib 与 hibernate 共同使用的问题" rel="bookmark inlinks">Json-lib 与 hibernate 共同使用的问题</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/772" title="jQuery 1.4 正式版发布啦(14 Days of jQuery)" rel="bookmark inlinks">jQuery 1.4 正式版发布啦(14 Days of jQuery)</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/582" title="如何判断一个请求是否为AJAX请求" rel="bookmark inlinks">如何判断一个请求是否为AJAX请求</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/918" title="直逼 Flash 的流畅感：jQuery 运动特效展示" rel="bookmark inlinks">直逼 Flash 的流畅感：jQuery 运动特效展示</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/718" title="关于本站开源项目finance的演示视频和源代码不能下载说明" rel="bookmark inlinks">关于本站开源项目finance的演示视频和源代码不能下载说明</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/555" title="jQuery性能优化指南" rel="bookmark inlinks">jQuery性能优化指南</a><span class="count">( 0 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=369&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/369/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>实例解析java + jQuery + json工作过程(登录)</title>
		<link>http://www.wsria.cn/archives/300</link>
		<comments>http://www.wsria.cn/archives/300#comments</comments>
		<pubDate>Tue, 24 Feb 2009 13:55:29 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json-lib]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=300</guid>
		<description><![CDATA[主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程
实例解析java + ajax(jQuery) + json工作过程]]></description>
			<content:encoded><![CDATA[<p><span style="color: #008000;">本文主要讲解在java环境下使用<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>进行JSON数据传送的交互过程</span></p>
<p>参考根据作者的<a href="http://www.wsria.cn/archives/73" target="_blank">账务管理系统(个人版)</a> <a href="http://www.wsria.cn/archives/136" target="_blank">源码下载</a> 讲解<br />
<span id="more-300"></span></p>
<p>一、相关技术、工具简介</p>
<p>1、简单介绍一下<a href="http://www.json.org/json-zh.html" target="_blank">JSON</a>，JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。已键值对形式表示数据，和java中的Map的数据存储形式相似，具体细节请参考<a href="http://www.json.org/json-zh.html" target="_blank">http://www.json.org/json-zh.html</a>。</p>
<p>2、对应后台JSON的数据处理工具<a title="java解析JSON数据使用的工具包" href="http://json-lib.sourceforge.net/" target="_blank">json-lib</a>，包含各种格式数据的工具类，比如：<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/java" title="查看 Java 中所有日志" target="_blank">Java</a></span>Bean、数组、集合(Collection)等，<a href="http://json-lib.sourceforge.net/apidocs/jdk15/index.html" target="_blank">参考API文档</a>。</p>
<p>3、<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>框架中的数据表现形式，如果你熟悉<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>的话就会发现jQuery的使用的数据传输都是JSON格式，比如我们经常使用的$.ajax方法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
	url <span style="color: #339933;">:</span> url<span style="color: #339933;">,</span>
	data <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
		id <span style="color: #339933;">:</span> chkValue
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
	cache <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
	dataType <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;json&quot;</span><span style="color: #339933;">,</span>
	success <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>其中 {&#8230;} 表示的就是JSON格式的数据</p>
<p>二、前台工作方式<br />
为了能够容易理解以系统登录讲解，最后会以一个实例的方式讲解<br />
1、登录页面<br />
代码请参见 <a href="http://code.google.com/p/finance-p/source/browse/trunk/login.jsp" target="_blank">http://code.google.com/p/finance-p/source/browse/trunk/login.jsp</a></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">用户名：
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;loginName&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;loginName&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
密码：
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>2、登录javascript文件 login.js</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * 设置表单验证规则
 */</span>
<span style="color: #003366; font-weight: bold;">function</span> regFormValidator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$.<span style="color: #660066;">formValidator</span>.<span style="color: #660066;">initConfig</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>formid<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;loginForm&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#loginName&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		onshow <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;请输入用户名&quot;</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onfocus</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;用户名至少2个字,最多4个字&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">inputValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onerror</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;你输入的用户名非法,请确认&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#password&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		onshow <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;请输入密码&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">inputValidator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">:</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">,</span>
		<span style="color: #000066;">onerror</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;密码在6位以上，请确认&quot;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// 注册表单验证插件</span>
	regFormValidator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// 验证输入的用户名、密码是否正确</span>
		<span style="color: #003366; font-weight: bold;">var</span> valid <span style="color: #339933;">=</span> jQuery.<span style="color: #660066;">formValidator</span>.<span style="color: #660066;">pageIsValid</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>valid<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'正在登录……'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">// 发送请求</span>
		$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
			url	<span style="color: #339933;">:</span> <span style="color: #3366CC;">'login.do'</span><span style="color: #339933;">,</span>
			data	<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span> loginName<span style="color: #339933;">:</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#loginName'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> password<span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#password'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
			success <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #006600; font-style: italic;">// 根据result返回信息判断是否登录成功</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>result <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> result <span style="color: #339933;">==</span> <span style="color: #3366CC;">'success'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'index.jsp'</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'登录失败，用户名或密码错误，请重试！'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样当点击“登录”按钮的时候触发ajax请求：</p>
<ol>
<li>验证表单完整性</li>
<li>发送ajax请求到后台，值通过data键已JSON格式传送至后台</li>
<li>如果后台返回的result为success时表示登录成功，页面跳转至首页index.jsp</li>
</ol>
<p>三、后台工作方式</p>
<p>后台要比前台操作复杂一些，以为涉及到<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e6%95%b0%e6%8d%ae%e5%ba%93" title="查看 数据库 中所有日志" target="_blank">数据库</a></span>、编码或者一些业务逻辑</p>
<p>1、获得请求参数</p>
<p>有两种方式：</p>
<ul>
<li>通过request.getParameter(&#8220;key&#8221;)的方式</li>
<li>通过<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib工具包获取</li>
</ul>
<p>这我们主要讲解怎么通过<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/json" title="查看 json 中所有日志" target="_blank">json</a></span>-lib获取参数</p>
<p>首先我们来写一个公共的方法，可以返回一个<a title="查看API文档" href="http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html" target="_blank">net.sf.json.JSONObject</a>对象，具体代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * 读取请求参数转换JSONObject对象
 *
 * @param request HttpServletRequest 对象
 * @return json格式的String对象
 * @throws Exception
 */</span>
@SuppressWarnings<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;unchecked&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">protected</span> JSONObject readJson<span style="color: #009900;">&#40;</span>HttpServletRequest request<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
	JSONObject jsonObject <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Map</span> parameterMap <span style="color: #339933;">=</span> request.<span style="color: #006633;">getParameterMap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">// 通过循环遍历的方式获得key和value并set到JSONObject中</span>
		<span style="color: #003399;">Iterator</span> paIter <span style="color: #339933;">=</span> parameterMap.<span style="color: #006633;">keySet</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>paIter.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003399;">String</span> key <span style="color: #339933;">=</span> paIter.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> values <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>parameterMap.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>key<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			jsonObject.<span style="color: #006633;">accumulate</span><span style="color: #009900;">&#40;</span>key, values<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;从客户端获得json=&quot;</span> <span style="color: #339933;">+</span> jsonObject.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		log.<span style="color: #006633;">error</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;获取json数据出错，错误信息如下：nt&quot;</span> <span style="color: #339933;">+</span> e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">throw</span> e<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> jsonObject<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>通过这个方法我们可以获得一个JSONObject对象，然后就可以通过key获得对应的value；</p>
<p>2、登录处理Action</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> ActionForward login<span style="color: #009900;">&#40;</span>ActionMapping mapping, ActionForm actionForm,
             HttpServletRequest request,HttpServletResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
	JSONObject jsonObject <span style="color: #339933;">=</span> readJson<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> name <span style="color: #339933;">=</span> jsonObject.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;loginName&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003399;">String</span> pass <span style="color: #339933;">=</span> jsonObject.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;password&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> loginFlag <span style="color: #339933;">=</span> userManager.<span style="color: #006633;">validLogin</span><span style="color: #009900;">&#40;</span>name, pass<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>loginFlag <span style="color: #339933;">==</span> UserManager.<span style="color: #006633;">LOGIN_SUCCESS</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			User user <span style="color: #339933;">=</span> userManager.<span style="color: #006633;">getUserByNameAndPass</span><span style="color: #009900;">&#40;</span>name, pass<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			UserUtil.<span style="color: #006633;">saveUser2Session</span><span style="color: #009900;">&#40;</span>user, request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			log.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;用户&amp;lt;&quot;</span> <span style="color: #339933;">+</span> user.<span style="color: #006633;">getUserName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
                              <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;,ip=&quot;</span> <span style="color: #339933;">+</span> request.<span style="color: #006633;">getRemoteAddr</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;&amp;gt;登录系统&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			print<span style="color: #009900;">&#40;</span>response, RESBONSE_SUCCESS<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>loginFlag <span style="color: #339933;">==</span> UserManager.<span style="color: #006633;">LOGIN_FAIL</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			print<span style="color: #009900;">&#40;</span>response, RESBONSE_ERROR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>解释：</p>
<p>在34行我们通过刚刚准备好的readJson方法获得一个JSONObject对象，接下来通过key获得用户名和密码，接下来就是业务逻辑的验证工作了，通过后我们向前台返回请求结果。<br />
我们还需要一个小方法向前台写结果，如上面44、46行</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> print<span style="color: #009900;">&#40;</span>HttpServletResponse response, <span style="color: #003399;">String</span> info<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		response.<span style="color: #006633;">getWriter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">throw</span> e<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<blockquote><p>这里有一点要说明，在获得输出流的时候有个小插曲，我在开发的时候使用的tomcat5.5.26版本，<br />
当时的写法为：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">response.<span style="color: #006633;">getOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>后来<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e6%ba%90%e7%a0%81" title="查看 源码 中所有日志" target="_blank">源码</a></span>开源后一个网友使用的tomcat6版本，说系统不能正常运行，后来他查到了原因，因为获得输出流时出了问题，<br />
改成getWriter就没有问题了，集体也没有搞清除为什么会是这样……</p></blockquote>
<p>基于java开发时会使用struts，struts需要返回一个ActionMapping对象，但是在ajax请求不需要返回特定页面，因为根本没有跳转页面的动作，解决办法很简单，直接<strong>return  null</strong>就可以了</p>
<p>输出结果后jQuery的ajax的success方法就接收到了请求结果，然后就可以根据结果处理业务逻辑了O(∩_∩)O~</p>
<p>OK，到此整个请求结束，有不明白的请留言或者到<a href="http://www.wsria.cn/about" target="_blank">“关于”</a>中联系我</p>
<p>注：本文为原创文章，转载请注明来自 <a href="http://www.wsria.cn/archives/300" target="_blank">http://www.wsria.cn/archives/300</a><br />
作者：<a href="http://www.wsria.cn" target="_blank">www.wsria.cn</a>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/300">http://www.wsria.cn/archives/300 | 实例解析java + jQuery + json工作过程(登录)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/1004" title="Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因" rel="bookmark inlinks">Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/84" title="推荐使用轻量级ajax框架-jQuery" rel="bookmark inlinks">推荐使用轻量级ajax框架-jQuery</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/918" title="直逼 Flash 的流畅感：jQuery 运动特效展示" rel="bookmark inlinks">直逼 Flash 的流畅感：jQuery 运动特效展示</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/241" title="单表查询树形结构的SQL语句" rel="bookmark inlinks">单表查询树形结构的SQL语句</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/196" title="转：jquery1.2.6源码分析" rel="bookmark inlinks">转：jquery1.2.6源码分析</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/324" title="jQuery.plugin——滚动条(连贯感觉)" rel="bookmark inlinks">jQuery.plugin——滚动条(连贯感觉)</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/670" title="使用hibernate和json-lib时忽略属性和集合" rel="bookmark inlinks">使用hibernate和json-lib时忽略属性和集合</a><span class="count">( 0 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=300&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/300/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</title>
		<link>http://www.wsria.cn/archives/136</link>
		<comments>http://www.wsria.cn/archives/136#comments</comments>
		<pubDate>Sat, 14 Feb 2009 09:35:00 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[个人作品]]></category>
		<category><![CDATA[项目]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=136</guid>
		<description><![CDATA[在这个特殊的日子还是继续宅男的生活，过着没有情人的情人节，但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼，半年来周末、下班时间学习使用的账务管理系统公开源代码了，关于系统的说明请参看本博客相关文章，废话不说了，googlecode地址公布如下]]></description>
			<content:encoded><![CDATA[<p>基于Java、jQuery开发的账务管理系统(个人版)系统演示及源码共享，致力于企业级RIA应用……</p>
<p><span id="more-136"></span></p>
<p>在这个特殊的日子还是继续宅男的生活，过着没有情人的情人节，但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼，半年来周末、下班时间学习使用的账务管理系统公<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e5%bc%80%e6%ba%90" title="查看 开源 中所有日志" target="_blank">开源</a></span>代码了，关于系统的说明请参看本博客相关文章，废话不说了，googlecode地址公布如下：</p>
<p>2009.02.25更新……</p>
<blockquote><p>版本库主页：<a href="http://code.google.com/p/finance-p/" target="_blank">http://code.google.com/p/finance-p/</a><br />
匿名检出版本库：svn checkout http://finance-p.googlecode.com/svn/trunk/ finance<br />
<a href="http://code.google.com/p/finance-p/downloads/list" target="_blank">googlecode</a>上去下载<!--，也可以从从本站下载：<a href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=4" title="版本：1.0.1，类别：[finance]，描述：基于Java、jQuery开发的个人版账务管理系统源代码
版本1.0.1中修改了查询区域的风格，包含了classes目录和eclipse工程信息">finance1.0.1.zip</a>&nbsp;共&nbsp;2320&nbsp;次--></p>
<p><a href="http://www.wsria.cn/archives/73" target="_blank">预览系统演示视频</a></p></blockquote>
<blockquote><p>关于系统功能的内部实现会陆续发布文章供大家研究、学习</p>
<p>如果你想参与到此项目的继续开发请联系博主</p>
<p>代码、功能仅供学习、参考，肯定存在一定问题，希望一块学习</p></blockquote>
<h2>更新2009.2.26</h2>
<blockquote><p>最近有一个网友下载了基于Java、jQuery开发的账务管理系统，上次的文档写的不完整，在这里向各位表示歉意，下面写一个完整的安装文档：</p>
<p style="text-indent: 21pt;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--></p>
</blockquote>
<blockquote><p><strong>一、</strong><strong>一个仅供学习之用的账务管理系统</strong><strong>(</strong><strong>个人版</strong><strong>)</strong></p>
<p><strong>系统简介</strong>： 1、实现了用户、组管理 2、实现了物品类别、详细管理 3、实现了基本账务(货币)管理</p>
<p>开发此系统的初衷在于学习技术以便更好的应用在公司的项目中，本系统特别注重用户体验方面的设计，友好的界面和傻瓜式的操作</p>
<p><strong>前后台架构</strong>： 1、java语言(jdk1.5)、struts1.2.9、hibernate3.2.6.ga、spring2.0.8 2、前台：主要使用了轻量级的ajax开发框架jQuery，使用jQuery很轻松的降低了服务器压力提高了用户体验并且代码容易维护，尤其是jQuery的插件机制更是简易了代码 3、数据库版本为mysql5.0 4、编码：为防止ajax乱码，所以项目、数据库全部使用UTF-8编码</p>
<p>浏览器兼容性： 目前的设计兼容IE7+、FireFox、Chrome(有一点路径问题) 因为IE6下的CSS文件还为完成所以使用IE6访问系统会出现布局不美观情况</p>
<p><strong>二、系统配置说明</strong></p>
<p>1、<strong>数据库</strong></p>
<ul>
<li>mysql，本人使用版本是5.0.18</li>
<li>建立数据库名称为：finance，字符集设置为UTF-8，然后导入bak/finance.sql文件</li>
</ul>
<div id="attachment_337" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-337" title="dbinfo" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/dbinfo.png" alt="mysql数据库属性" width="275" height="171" /><p class="wp-caption-text">mysql数据库属性</p></div>
<p>2、<strong>编译项目</strong></p>
<p><strong>说明：本项目没有使用标准的WebRoot格式，源代码文件夹SRC位于/WEB-INF/SRC目录下<br />
</strong></p>
<ul>
<li>SVN版本库和压缩包中没有class文件，即/WEB-INF目录下没有classes目录，<strong><em>需要自己使用eclipse编译</em></strong>，所有用到的jar包都在WEB-INF/lib目录下，即<span style="color: #0000ff;"><em>eclipse中build path&#8211;&gt;libraries</em></span>设置，各个框架的版本上面都已说明</li>
<li>编译时如果使用MyEclipse的话使用J2EE1.4这个library</li>
<li>使用tomcat或者weblogic等服务器jar包的请自行引入</li>
<div id="attachment_338" class="wp-caption alignleft" style="width: 172px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipsedir.png"><img class="size-full wp-image-338" title="eclipsedir" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipsedir.png" alt="配置完成的eclipse目录" width="162" height="430" /></a></p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_357" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipselib.png" target="_blank"><img class="size-medium wp-image-357" title="eclipselib" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/eclipselib-300x169.png" alt="eclipse编译环境" width="500" height="200" /></a><p class="wp-caption-text">eclipse编译环境</p></div>
</dt>
<dd class="wp-caption-dd">配置完成的eclipse目录</dd>
</dl>
</div>
</ul>
<p>3、<strong>设置、启动服务</strong></p>
<ul>
<li>打开finance/WEB-INF/config/applicationContext.xml：</li>
<li>修改<strong>第10、11行的数据库名和密码</strong>为你的mysql数据库用户名、密码</li>
<li><strong>部署tomcat应用：</strong>
<ul>
<li>在tomcat目录confCatalinalocalhost下建立一个finance.xml</li>
<li>内容：&lt;Context docBase=&#8221;D:projectsfinancetrunk&#8221; reloadable=&#8221;true&#8221; privileged=&#8221;true&#8221;&gt;&lt;/Context&gt;<br />
docBase根据自己的情况设置</li>
</ul>
</li>
<li>做完上面两步后就可以启动服务了，如果应用名设置为finance就直接可以访问了，如果自己另外定了应用名称则需要修改common/js/plugin/weebox.js中第17行，改为：url: &#8216;/<strong><em>应用名称</em></strong>/common/js/plugin/bgiframe.js&#8217;即可</li>
<li>访问系统最好使用Firefox浏览器，因为FF内置的JS引擎机制速度比IE快的多，或者google的Chrome浏览器也不错，其内置的JS8引擎比FF的性能还要好</li>
<p><div id="attachment_55" class="wp-caption alignleft" style="width: 501px"><a href="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png"><img class="size-full wp-image-55" title="finance" src="http://www.wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png" alt="账务管理系统(个人版)演示" width="491" height="371" /></a><p class="wp-caption-text">账务管理系统(个人版)演示</p></div></ul>
<p><strong>4</strong><strong>、更新最新版本</strong><strong> </strong></p>
<p><em><strong><a href="http://finance-p.googlecode.com/svn/trunk/">http://finance-p.googlecode.com/svn/trunk/</a></strong></em><tt></tt></p>
<p>声明：本系统仅供学习使用，禁止商业应用 版权归<a href="http://www.wsria.cn" target="_blank">http://www.wsria.cn</a>所有</p>
<p>如果有问题请联系作者：</p>
<p>QQ：576525789<br />
MSN：yanhonglei@gmail.com</p></blockquote>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/136">http://www.wsria.cn/archives/136 | 基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/369" title="实例解析java + jQuery + json工作过程(获取JSON数据)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(获取JSON数据)</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/1026" title="工欲善其事，必先利其器" rel="bookmark inlinks">工欲善其事，必先利其器</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/300" title="实例解析java + jQuery + json工作过程(登录)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(登录)</a><span class="count">( 8 )</span></li>
<li><a href="http://www.wsria.cn/archives/718" title="关于本站开源项目finance的演示视频和源代码不能下载说明" rel="bookmark inlinks">关于本站开源项目finance的演示视频和源代码不能下载说明</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/89" title="基于Java、jQuery开发的账务管理系统(个人版)即将开源" rel="bookmark inlinks">基于Java、jQuery开发的账务管理系统(个人版)即将开源</a><span class="count">( 13 )</span></li>
<li><a href="http://www.wsria.cn/archives/827" title="新年新气象，博客新面貌" rel="bookmark inlinks">新年新气象，博客新面貌</a><span class="count">( 3 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=136&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/136/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>基于Java、jQuery开发的账务管理系统(个人版)即将开源</title>
		<link>http://www.wsria.cn/archives/89</link>
		<comments>http://www.wsria.cn/archives/89#comments</comments>
		<pubDate>Fri, 13 Feb 2009 07:15:01 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[项目]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[个人版]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[账务管理]]></category>

		<guid isPermaLink="false">http://www.wsria.cn/?p=89</guid>
		<description><![CDATA[基于Java、jQuery开发的账务管理系统(个人版)即将开源]]></description>
			<content:encoded><![CDATA[<p>最近公司的事情太多没有时间整理源代码，公司总是把员工当做年轻的黄牛使用，什么事情都交给你做……</p>
<p>情人节别人双双亲亲热热的咱着个宅男还是在家里codeing，正好趁这个时间把代码整理发布给大家，帮助那些想在java环境中使用<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>的同学快速入门并应用的实际项目中去</p>
<p>前段时间在<a title="googlecode" href="http://www.googlecode.com" target="_blank">googlecode</a>上申请了一个空间专门存放系统版本库，地址暂时先不公布，下周发布时发布消息。</p>
<p>需要此系统的同学可以先留下<a href="http://www.gmail.com" target="_blank">gmail</a>账号</p>
<p><a title="预览系统截图" href="http://www.wsria.cn/archives/73" target="_blank">系统预览</a></p>
<p>谢谢关注，敬请期待……
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/89">http://www.wsria.cn/archives/89 | 基于Java、jQuery开发的账务管理系统(个人版)即将开源</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/214" title="推荐jQuery插件系列——表单验证formValidator" rel="bookmark inlinks">推荐jQuery插件系列——表单验证formValidator</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/733" title="推荐：2009 年度最佳 jQuery 插件" rel="bookmark inlinks">推荐：2009 年度最佳 jQuery 插件</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/588" title="简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" rel="bookmark inlinks">简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)</a><span class="count">( 2 )</span></li>
<li><a href="http://www.wsria.cn/archives/184" title="jQuery技巧大放送" rel="bookmark inlinks">jQuery技巧大放送</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/369" title="实例解析java + jQuery + json工作过程(获取JSON数据)" rel="bookmark inlinks">实例解析java + jQuery + json工作过程(获取JSON数据)</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/342" title="【推荐】jQuery.plugin——对话框jquery.weebox.js" rel="bookmark inlinks">【推荐】jQuery.plugin——对话框jquery.weebox.js</a><span class="count">( 5 )</span></li>
<li><a href="http://www.wsria.cn/archives/1147" title="利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)" rel="bookmark inlinks">利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)</a><span class="count">( 5 )</span></li>
<li><a href="http://www.wsria.cn/archives/1004" title="Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因" rel="bookmark inlinks">Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因</a><span class="count">( 0 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=89&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/89/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>基于jQuery开发的账务管理系统(个人版)演示</title>
		<link>http://www.wsria.cn/archives/73</link>
		<comments>http://www.wsria.cn/archives/73#comments</comments>
		<pubDate>Sun, 08 Feb 2009 03:48:43 +0000</pubDate>
		<dc:creator>咖啡兔</dc:creator>
				<category><![CDATA[个人作品]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[后台技术]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[账务]]></category>

		<guid isPermaLink="false">http://wsria.cn/?p=73</guid>
		<description><![CDATA[开发此系统的初衷在于学习前台技术，然后就想到开发一个小系统，边开发边学习 后来一天突然想到做账务系统(个人版)，然后计划使用什么技术来实现，在公司待了也快两年了最看不惯的就是用户界面、体验，所以就计划使用目前比较成熟的Ajax框架来做前台，后台还是使用基于Java语言的SSH架构来实现 平常工作忙只能下班或者周末开发、学习，在开始做的时候比较了几个目前比较流行的Ajax框架，例如：Ext、Prototype、jQuery、Dojo，后来经过比较还是选择了轻量级的Ajax框架jQuery来完成前台的功能，至于为什么使用jQuery请参见《推荐使用轻量级ajax框架-jQuery》 经过近两年的BS开发经验积累我得知一个易用的系统最主要的是什么，简单的操作和友好提示+界面的美化是给用户的第一初体验，此系统就抓住了这一点为主攻方向，具体请下载视频观看 此项目已在googlecode上建立版本库，如果你想学习jQuery或者参与后期开发请QQ或者E-mail联系我 QQ:576525789 gmail:yanhonglei@gmail.com(使用googlecode必须要有一个google账户) 声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。 转载请注明转自 what is the RIA? just it…&#124;&#124;咖啡兔 &#8482; 原始链接:http://www.wsria.cn/archives/73 &#124; 基于jQuery开发的账务管理系统(个人版)演示 相关文章 站点GBK编码下jQuery Ajax中文乱码解决方案( 22 ) [推荐]改进的提示插件-jQuery.hiAlerts.1.0( 1 ) jQuery技巧大放送( 0 ) 直逼 Flash 的流畅感：jQuery 运动特效展示( 4 ) 关于本站开源项目finance的演示视频和源代码不能下载说明( 1 ) 工欲善其事，必先利其器( 4 ) jQuery1.4 API 区别与更新中文版( 0 ) 15天学会jquery( 0 ) &#169;2010 what is the RIA? [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">开发此系统的初衷在于学习前台技术，然后就想到开发一个小系统，边开发边学习</div>
<div class="mceTemp">后来一天突然想到做<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/%e8%b4%a6%e5%8a%a1" title="查看 账务 中所有日志" target="_blank">账务</a></span>系统(个人版)，然后计划使用什么技术来实现，在公司待了也快两年了最看不惯的就是用户界面、体验，所以就计划使用目前比较成熟的Ajax框架来做前台，后台还是使用基于Java语言的SSH架构来实现</div>
<div class="mceTemp">平常工作忙只能下班或者周末开发、学习，在开始做的时候比较了几个目前比较流行的Ajax框架，例如：Ext、Prototype、<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>、Dojo，后来经过比较还是选择了轻量级的Ajax框架<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>来完成前台的功能，至于为什么使用<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/jquery" title="查看 jQuery 中所有日志" target="_blank">jQuery</a></span>请参见<a href="http://wsria.cn/js/%e6%8e%a8%e8%8d%90%e4%bd%bf%e7%94%a8%e8%bd%bb%e9%87%8f%e7%ba%a7ajax%e6%a1%86%e6%9e%b6-jquery.html" target="_blank">《推荐使用轻量级ajax框架-jQuery》</a></div>
<div class="mceTemp">经过近两年的BS开发经验积累我得知一个易用的系统最主要的是什么，简单的操作和友好提示+界面的美化是给用户的第一初体验，此系统就抓住了这一点为主攻方向，具体请下载<span class='wp_keywordlink_affiliate'><a href="http://www.wsria.cn/archives/tag/video" title="查看 视频 中所有日志" target="_blank">视频</a></span>观看</div>
<div class="mceTemp">此项目已在googlecode上建立版本库，如果你想学习jQuery或者参与后期开发请QQ或者E-mail联系我</div>
<div class="mceTemp">QQ:576525789</div>
<div class="mceTemp">gmail:yanhonglei@gmail.com(使用googlecode必须要有一个google账户)</div>
<div class="mceTemp">下载：<a href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=15" title="版本：1.0，类别：[finance]，描述：基于Java、jQuery开发的账务管理系统(个人版)的演示视频">账务管理系统(个人版)演示视频.rar</a>&nbsp;共&nbsp;2665&nbsp;次</div>
<p><div id="attachment_55" class="wp-caption alignleft" style="width: 456px"><a href="http://wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png"><img class="size-full wp-image-55" title="finance" src="http://wsria.cn/wordpress/wp-content/uploads/2009/02/finance.png" alt="账务管理系统(个人版)演示" width="446" height="360" /></a><p class="wp-caption-text">账务管理系统(个人版)演示</p></div>
<p class="copyright_info"><strong class="icon">声明:</strong>该日志由<a title="由 咖啡兔 发表" href="http://www.wsria.cn/archives/author/admin/" linkindex="13">咖啡兔</a>发表,你可以自由发表评论或转载到你的网站或博客。 <br/><span style="padding-left:20px">转载请注明转自<a rel="bookmark inlinks" href="http://www.wsria.cn/wordpress/" title="what is the RIA?  just it…||咖啡兔" linkindex="14"> what is the RIA?  just it…||咖啡兔 &trade;</a></span><br />
<strong class="icon">原始链接:</strong><a href="http://www.wsria.cn/archives/73">http://www.wsria.cn/archives/73 | 基于jQuery开发的账务管理系统(个人版)演示</a>
</p>
<h3>相关文章</h3>
<ul class="related_posts">
<li><a href="http://www.wsria.cn/archives/974" title="[转][推荐]15 个 JavaScript Web UI 库" rel="bookmark inlinks">[转][推荐]15 个 JavaScript Web UI 库</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/918" title="直逼 Flash 的流畅感：jQuery 运动特效展示" rel="bookmark inlinks">直逼 Flash 的流畅感：jQuery 运动特效展示</a><span class="count">( 4 )</span></li>
<li><a href="http://www.wsria.cn/archives/342" title="【推荐】jQuery.plugin——对话框jquery.weebox.js" rel="bookmark inlinks">【推荐】jQuery.plugin——对话框jquery.weebox.js</a><span class="count">( 5 )</span></li>
<li><a href="http://www.wsria.cn/archives/772" title="jQuery 1.4 正式版发布啦(14 Days of jQuery)" rel="bookmark inlinks">jQuery 1.4 正式版发布啦(14 Days of jQuery)</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/796" title="jQuery1.4 API 区别与更新中文版" rel="bookmark inlinks">jQuery1.4 API 区别与更新中文版</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/245" title="从Google搜索联想到了jQuery" rel="bookmark inlinks">从Google搜索联想到了jQuery</a><span class="count">( 0 )</span></li>
<li><a href="http://www.wsria.cn/archives/659" title="[推荐]改进的提示插件-jQuery.hiAlerts.1.0" rel="bookmark inlinks">[推荐]改进的提示插件-jQuery.hiAlerts.1.0</a><span class="count">( 1 )</span></li>
<li><a href="http://www.wsria.cn/archives/214" title="推荐jQuery插件系列——表单验证formValidator" rel="bookmark inlinks">推荐jQuery插件系列——表单验证formValidator</a><span class="count">( 2 )</span></li>
</ul>
<p>&copy;2010 <a href="http://www.wsria.cn">what is the RIA?  just it…||咖啡兔</a>. All Rights Reserved.</p>.<img src="http://www.wsria.cn/wordpress/?ak_action=api_record_view&id=73&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.wsria.cn/archives/73/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
