﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-野草</title><link>http://www.blogjava.net/patterns/</link><description>别人笑我忒疯癫，我笑别人看不穿...
</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 20:47:44 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 20:47:44 GMT</pubDate><ttl>60</ttl><item><title>持续层对象的hashCode和equals方法</title><link>http://www.blogjava.net/patterns/archive/2007/01/13/po_hashCode_equals.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sat, 13 Jan 2007 11:13:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2007/01/13/po_hashCode_equals.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/93630.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2007/01/13/po_hashCode_equals.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/93630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/93630.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						</span>
				</font> </p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</span>
						<span lang="EN-US">hibernate</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">快一年了，一直使用得比较肤浅，甚至没有正式使用过对象关系。近段时间想深入研究一下，以便在项目中推广，减少不必要的对象维护和编程。问题不期而遇，在多对多关系中，出现了递规加载的现象，例如：用户和角色的关系，一个用户可能有多个角色，一个角色中包含多个用户。我是通过带有连接表的多对多关系实现的，用户和角色对象中都维持了一个</span>
						<span lang="EN-US">Set</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象，用以延迟加载关系。但是，在我延迟加载用户拥有的角色时，被加载的角色又加载它所包含的用户，被加载的用户又加载所拥有的角色，这样递规加载下去，由于</span>
						<span lang="EN-US">session</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的关闭会抛出异常导致程序中止。开始百思不得其解，在仔细查看抛出的异常堆栈时，终于发现了问题所在。习惯！错误的习惯。我们所使用的持续层对象会继承一个基础类，该类“实现”了</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
						<span lang="EN-US">equals</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法，代码如下：</span>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">public boolean equals(Object o) {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">    </span>return EqualsBuilder.reflectionEquals(this, o);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">public int hashCode() {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
												<span lang="EN-US">
														<font size="2">return HashCodeBuilder.reflectionHashCode(this);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">}</font>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">hibernate</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将用户所拥有的角色对象放进</span>
						<span lang="EN-US">Set</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，实际</span>
						<span lang="EN-US">Set</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会调用</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
						<span lang="EN-US">equals</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来判断两个对象是否相等，这样问题就来了，</span>
						<span lang="EN-US">HashCodeBuilder.reflectionHashCode(this)</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法使用反射调用角色对象的</span>
						<span lang="EN-US">getUsers()</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法，</span>
						<span lang="EN-US">hibernate</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">又加载角色所包含的用户，能没有问题吗？继而我们得反思一下持续层对象有没有通用的</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
						<span lang="EN-US">equals</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参考《深入浅出</span>
						<span lang="EN-US">Hibernate</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">》对</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
						<span lang="EN-US">equals</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法的处理有两大种：</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不覆盖</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">问题：实体对象的跨</span>
						<span lang="EN-US">session</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">识别问题，根本在于</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">默认调用</span>
						<span lang="EN-US">System.identityHashCode()</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法。</span>
						<span lang="EN-US">
								<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">覆盖</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 39.0pt">
				<font size="2">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用对象</span>
						<span lang="EN-US">pk</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">问题：新增对象时，没有</span>
						<span lang="EN-US">pk</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，那么所有的对象都相等了，也就是只能加入的一条。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 39.0pt">
				<font size="2">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">值比对（对实体对象的所有属性值进行比对，可以使用</span>
						<span lang="EN-US">Commonclipse</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自动生成）</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font size="2">问题：过于严格。</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 39.0pt">
				<font size="2">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">Ø<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">业务关键信息判定</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font size="2">是值比对的一个子集，只做业务关键属性的比对。</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个人觉得业务关键信息判定的方法比较合理，使用</span>
						<span lang="EN-US">Commonclipse</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自动生成值比对，注意两点：</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 36.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">去掉实体关联集合属性的比对，不然又会出现我上述的“递规加载”现象。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 36.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自动生成的</span>
						<span lang="EN-US">hashCode</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法去掉</span>
						<span lang="EN-US">appendSuper(super.hashCode())</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，自动生成的</span>
						<span lang="EN-US">equals</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法去掉</span>
						<span lang="EN-US">appendSuper(super.equals(object))</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，不然你的对象比较和加入</span>
						<span lang="EN-US">collection</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都有问题的，《深入浅出</span>
						<span lang="EN-US">Hibernate</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">》书中没有强调。</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/93630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2007-01-13 19:13 <a href="http://www.blogjava.net/patterns/archive/2007/01/13/po_hashCode_equals.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 如何把Hibernate2.1升级到Hibernate3.0 </title><link>http://www.blogjava.net/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sat, 30 Dec 2006 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/90941.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/90941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/90941.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">1.1 Hibernate API 变化 <br />1.1.1 包名 <br />1.1.2 org.hibernate.classic包 <br />1.1.3 Hibernate所依赖的第三方软件包 <br />1.1.4 异常模型 <br />1.1.5 Session接口 <br />1.1.6 createSQLQuery() <br />1.1.7 Lifecycle 和 Validatable 接口 <br />1.1.8 Interceptor接口 <br />1.1.9 UserType和CompositeUserType接口 <br />1.1.10 FetchMode类 <br />1.1.11 PersistentEnum类 <br />1.1.12 对Blob 和Clob的支持 <br />1.1.13 Hibernate中供扩展的API的变化 <br />1.2 元数据的变化 <br />1.2.1 检索策略 <br />1.2.2 对象标识符的映射 <br />1.2.3 集合映射 <br />1.2.4 DTD <br />1.3 查询语句的变化 <br />1.3.1 indices()和elements()函数 </font>
		</p>
		<p>
				<font size="2">尽管Hibernate 3.0 与Hibernate2.1的源代码是不兼容的，但是当Hibernate开发小组在设计Hibernate3.0时，为简化升级Hibernate版本作了周到的考虑。对于现有的基于Hibernate2.1的Java项目，可以很方便的把它升级到Hibernate3.0。</font>
		</p>
		<p>
				<font size="2">本文描述了Hibernate3.0版本的新变化，Hibernate3.0版本的变化包括三个方面：<br />（1）API的变化，它将影响到Java程序代码。<br />（2）元数据，它将影响到对象-关系映射文件。<br />（3）HQL查询语句。</font>
		</p>
		<p>
				<font size="2">值得注意的是， Hibernate3.0并不会完全取代Hibernate2.1。在同一个应用程序中，允许Hibernate3.0和Hibernate2.1并存。</font>
		</p>
		<p>
				<font size="2">1.1 Hibernate API 变化</font>
		</p>
		<p>
				<font size="2">1.1.1 包名</font>
		</p>
		<p>
				<font size="2">Hibernate3.0的包的根路径为: “org.hibernate” ，而在Hibernate2.1中为“net.sf.hibernate”。这一命名变化使得Hibernate2.1和Hibernate3.0能够同时在同一个应用程序中运行。</font>
		</p>
		<p>
				<font size="2">如果希望把已有的应用升级到Hibernate3.0，那么升级的第一步是把Java源程序中的所有“net.sf.hibernate”替换为“org.hibernate”。</font>
		</p>
		<p>
				<font size="2">Hibernate2.1中的“net.sf.hibernate.expression”包被改名为“org.hibernate.criterion”。假如应用程序使用了Criteria API，那么在升级的过程中，必须把Java源程序中的所有“net.sf.hibernate.expression”替换为“org.hibernate.criterion”。</font>
		</p>
		<p>
				<font size="2">如果应用使用了除Hibernate以外的其他外部软件，而这个外部软件又引用了Hibernate的接口，那么在升级时必须十分小心。例如EHCache拥有自己的CacheProvider： net.sf.ehcache.hibernate.Provider，在这个类中引用了Hibernate2.1中的接口，在升级应用时，可以采用以下办法之一来升级EHCache:</font>
		</p>
		<p>
				<font size="2">（1）手工修改net.sf.ehcache.hibernate.Provider类，使它引用Hibernate3.0中的接口。<br />（2）等到EHCache软件本身升级为使用Hibernate3.0后，使用新的EHCache软件。<br />（3）使用Hibernate3.0中内置的CacheProvider：org.hibernate.cache.EhCacheProvider。</font>
		</p>
		<p>
				<font size="2">1.1.2 org.hibernate.classic包</font>
		</p>
		<p>
				<font size="2">Hibernate3.0把一些被废弃的接口都转移到org.hibernate.classic中。</font>
		</p>
		<p>
				<font size="2">1.1.3 Hibernate所依赖的第三方软件包</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0的软件包的lib目录下的README.txt文件中，描述了Hibernate3.0所依赖的第三方软件包的变化。</font>
		</p>
		<p>
				<font size="2">1.1.4 异常模型</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0中，HibernateException异常以及它的所有子类都继承了java.lang.RuntimeException。因此在编译时，编译器不会再检查HibernateException。</font>
		</p>
		<p>
				<font size="2">1.1.5 Session接口</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0中，原来Hibernate2.1的Session接口中的有些基本方法也被废弃，但为了简化升级，这些方法依然是可用的，可以通过org.hibernate.classic.Session子接口来访问它们，例如：</font>
		</p>
		<p>
				<br />
				<font size="2">org.hibernate.classic.Session session=sessionFactory.openSession();<br />session.delete("delete from Customer ");</font>
		</p>
		<p>
				<br />
				<font size="2">在Hibernate3.0中，org.hibernate.classic.Session接口继承了org.hibernate.Session接口，在org.hibernate.classic.Session接口中包含了一系列被废弃的方法，如find()、interate()等。SessionFactory接口的openSession()方法返回org.hibernate.classic.Session类型的实例。如果希望在程序中完全使用Hibernate3.0，可以采用以下方式创建Session实例：</font>
		</p>
		<p>
				<font size="2">org.hibernate.Session session=sessionFactory.openSession();</font>
		</p>
		<p>
				<font size="2">如果是对已有的程序进行简单的升级，并且希望仍然调用Hibernate2.1中Session的一些接口，可以采用以下方式创建Session实例：</font>
		</p>
		<p>
				<font size="2">org.hibernate.classic.Session session=sessionFactory.openSession();</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0中，Session接口中被废弃的方法包括：<br />* 执行查询的方法：find()、iterate()、filter()和delete(String hqlSelectQuery) <br />* saveOrUpdateCopy()</font>
		</p>
		<p>
				<font size="2">Hibernate3.0一律采用createQuery()方法来执行所有的查询语句，采用DELETE 查询语句来执行批量删除，采用merge()方法来替代 saveOrUpdateCopy()方法。 </font>
		</p>
		<p>
				<br />
				<font size="2">提示：在Hibernate2.1中，Session的delete()方法有几种重载形式，其中参数为HQL查询语句的delete()方法在Hibernate3.0中被废弃，而参数为Ojbect类型的的delete()方法依然被支持。delete(Object o)方法用于删除参数指定的对象，该方法支持级联删除。 </font>
		</p>
		<p>
				<font size="2">Hibernate2.1没有对批量更新和批量删除提供很好的支持，参见&lt;&lt;精通Hibernate&gt;&gt;一书的第13章的13.1.1节（批量更新和批量删除），而Hibernate3.0对批量更新和批量删除提供了支持，能够直接执行批量更新或批量删除语句，无需把被更新或删除的对象先加载到内存中。以下是通过Hibernate3.0执行批量更新的程序代码： </font>
		</p>
		<p>
				<font size="2">Session session = sessionFactory.openSession();<br />Transaction tx = session.beginTransaction(); </font>
		</p>
		<p>
				<font size="2">String hqlUpdate = "update Customer set name = :newName where name = :oldName";<br />int updatedEntities = s.createQuery( hqlUpdate )<br />.setString( "newName", newName )<br />.setString( "oldName", oldName )<br />.executeUpdate();<br />tx.commit();<br />session.close(); </font>
		</p>
		<p>
				<font size="2">以下是通过Hibernate3.0执行批量删除的程序代码： </font>
		</p>
		<p>
				<font size="2">Session session = sessionFactory.openSession();<br />Transaction tx = session.beginTransaction(); </font>
		</p>
		<p>
				<font size="2">String hqlDelete = "delete Customer where name = :oldName";<br />int deletedEntities = s.createQuery( hqlDelete )<br />.setString( "oldName", oldName )<br />.executeUpdate();<br />tx.commit();<br />session.close();</font>
		</p>
		<p>
				<font size="2">1.1.6 createSQLQuery()</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0中，Session接口的createSQLQuery()方法被废弃，被移到org.hibernate.classic.Session接口中。Hibernate3.0采用新的SQLQuery接口来完成相同的功能。</font>
		</p>
		<p>
				<font size="2">1.1.7 Lifecycle 和 Validatable 接口</font>
		</p>
		<p>
				<font size="2">Lifecycle和Validatable 接口被废弃，并且被移到org.hibernate.classic包中。</font>
		</p>
		<p>
				<font size="2">1.1.8 Interceptor接口</font>
		</p>
		<p>
				<font size="2">在Interceptor 接口中加入了两个新的方法。 用户创建的Interceptor实现类在升级的过程中，需要为这两个新方法提供方法体为空的实现。此外，instantiate()方法的参数作了修改，isUnsaved()方法被改名为isTransient()。</font>
		</p>
		<p>
				<font size="2">1.1.9 UserType和CompositeUserType接口</font>
		</p>
		<p>
				<font size="2">在UserType和CompositeUserType接口中都加入了一些新的方法，这两个接口被移到org.hibernate.usertype包中，用户定义的UserType和CompositeUserType实现类必须实现这些新方法。 </font>
		</p>
		<p>
				<font size="2">Hibernate3.0提供了ParameterizedType接口，用于更好的重用用户自定义的类型。 </font>
		</p>
		<p>
				<font size="2">1.1.10 FetchMode类</font>
		</p>
		<p>
				<font size="2">FetchMode.LAZY 和 FetchMode.EAGER被废弃。取而代之的分别为FetchMode.SELECT 和FetchMode.JOIN。</font>
		</p>
		<p>
				<font size="2">1.1.11 PersistentEnum类</font>
		</p>
		<p>
				<font size="2">PersistentEnum被废弃并删除。已经存在的应用应该采用UserType来处理枚举类型。</font>
		</p>
		<p>
				<font size="2">1.1.12 对Blob 和Clob的支持</font>
		</p>
		<p>
				<font size="2">Hibernate对Blob和Clob实例进行了包装，使得那些拥有Blob或Clob类型的属性的类的实例可以被游离、序列化或反序列化，以及传递到merge()方法中。</font>
		</p>
		<p>
				<font size="2">1.1.13 Hibernate中供扩展的API的变化</font>
		</p>
		<p>
				<font size="2">org.hibernate.criterion、 org.hibernate.mapping、 org.hibernate.persister和org.hibernate.collection 包的结构和实现发生了重大的变化。多数基于Hibernate <br />2.1 的应用不依赖于这些包，因此不会被影响。如果你的应用扩展了这些包中的类，那么必须非常小心的对受影响的程序代码进行升级。</font>
		</p>
		<p>
				<font size="2">1.2 元数据的变化</font>
		</p>
		<p>
				<font size="2">1.2.1 检索策略</font>
		</p>
		<p>
				<font size="2">在Hibernate2.1中，lazy属性的默认值为“false”，而在Hibernate3.0中，lazy属性的默认值为“true”。在升级映射文件时，如果原来的映射文件中的有关元素，如&lt;set&gt;、&lt;class&gt;等没有显式设置lazy属性，那么必须把它们都显式的设置为lazy=“true”。如果觉得这种升级方式很麻烦，可以采取另一简单的升级方式：在&lt;hibernate-mapping&gt;元素中设置: default-lazy=“false”。 </font>
		</p>
		<p>
				<font size="2">1.2.2 对象标识符的映射</font>
		</p>
		<p>
				<font size="2">unsaved-value属性是可选的，在多数情况下，Hibernate3.0将把unsaved-value="0" 作为默认值。</font>
		</p>
		<p>
				<font size="2">在Hibernate3.0中，当使用自然主键和游离对象时，不再强迫实现Interceptor.isUnsaved()方法。 如果没有设置这个方法，当Hibernate3.0无法区分对象的状态时，会查询数据库，来判断这个对象到底是临时对象，还是游离对象。不过，显式的使用Interceptor.isUnsaved()方法会获得更好的性能，因为这可以减少Hibernate直接访问数据库的次数。</font>
		</p>
		<p>
				<font size="2">1.2.3 集合映射</font>
		</p>
		<p>
				<font size="2">&lt;index&gt;元素在某些情况下被&lt;list-index&gt;和&lt;map-key&gt;元素替代。此外，Hibernate3.0用&lt;map-key-many-to-many&gt; 元素来替代原来的&lt;key-many-to-many&gt;.元素，用&lt;composite-map-key&gt;元素来替代原来的&lt;composite-index&gt;元素。</font>
		</p>
		<p>
				<font size="2">1.2.4 DTD</font>
		</p>
		<p>
				<font size="2">对象-关系映射文件中的DTD文档，由原来的：<br /></font>
				<a href="http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
						<font size="2">http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd</font>
				</a>
				<font size="2">
						<br />改为：<br /></font>
				<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
						<font size="2">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd</font>
				</a>
		</p>
		<p>
				<font size="2">1.3 查询语句的变化</font>
		</p>
		<p>
				<font size="2">Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器，不过，Hibernate2.1的查询翻译器也依然存在。在Hibernate的配置文件中，hibernate.query.factory_class属性用来选择查询翻译器。例如：<br />（1）选择Hibernate3.0的查询翻译器：<br />hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory<br />（2）选择Hibernate2.1的查询翻译器<br />hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory </font>
		</p>
		<p>
				<br />
				<font size="2">提示：ANTLR是用纯Java语言编写出来的一个编译工具，它可生成Java语言或者是C++的词法和语法分析器，并可产生语法分析树并对该树进行遍历。ANTLR由于是纯Java的，因此可以安装在任意平台上，但是需要JDK的支持。 </font>
		</p>
		<p>
				<font size="2">Hibernate开发小组尽力保证Hibernate3.0的查询翻译器能够支持Hibernate2.1的所有查询语句。不过，对于许多已经存在的应用，在升级过程中，也不妨仍然使用Hibernate2.1的查询翻译器。<br />值得注意的是， Hibernate3.0的查询翻译器存在一个Bug：不支持某些theta-style连结查询方言：如Oracle8i的OracleDialect方言、Sybase11Dialect。解决这一问题的办法有两种：（1）改为使用支持ANSI-style连结查询的方言，如 Oracle9Dialect,（2）如果升级的时候遇到这一问题，那么还是改为使用Hibernate2.1的查询翻译器。</font>
		</p>
		<p>
				<font size="2">1.3.1 indices()和elements()函数</font>
		</p>
		<p>
				<font size="2">在HQL的select子句中废弃了indices()和elements()函数，因为这两个函数的语法很让用户费解，可以用显式的连接查询语句来替代 select elements(...) 。而在HQL的where子句中，仍然可以使用elements()函数。</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
<img src ="http://www.blogjava.net/patterns/aggbug/90941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-12-30 09:37 <a href="http://www.blogjava.net/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通用套打web端解决方法</title><link>http://www.blogjava.net/patterns/archive/2006/12/16/cert_print_20061216.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sat, 16 Dec 2006 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/12/16/cert_print_20061216.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/88240.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/12/16/cert_print_20061216.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/88240.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/88240.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类似于证件打印的套打模式，在</span>
						<span lang="EN-US">web</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面解决方法中比较棘手。这段时间忙里偷闲，好好研习了</span>
						<span lang="EN-US">dhtml</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的相关技术写了一个以此抛砖引玉。<br /><br /></span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<font size="2">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现的功能</span>
								<span lang="EN-US">
										<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
										<o:p>
										</o:p>
								</span>
						</font>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">1</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可以调整显示数据的位置、字体和大小（certprint.css）；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">2</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可以设置背景图片和图片大小；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">3</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可以获得数据调整后的位置（方便数据库保存，无需每次都设置）；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可以设置打印属性（仅限</span>
						<span lang="EN-US">IE</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）：</span>
						<span lang="EN-US">header/footer</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、横向</span>
						<span lang="EN-US">/</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">纵向、打印页边距；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">5</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可以跨浏览器使用（除打印设置）：</span>
						<span lang="EN-US">IE</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
						<span lang="EN-US">FireFox</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
						<span lang="EN-US">Netscape;<br /><br /></span>
				</font>
				<b style="mso-bidi-font-weight: normal">
						<font size="2">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术点</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</font>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素拖拽技术</span>
						<span lang="EN-US">dragdrop.js</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象序列化</span>
						<span lang="EN-US">json.js</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">控制打印</span>
						<span lang="EN-US">ScriptX</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">4、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span lang="EN-US">DHTML</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<font size="2">
						<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">5、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">浏览器兼容</span>
						<span lang="EN-US">w3c</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；<br /><br /></span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<font size="2">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用方法</span>
								<span lang="EN-US">
										<o:p>
										</o:p>
								</span>
						</font>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font size="2">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在你的项目中建立一个类似于</span>
						<span lang="EN-US">certprint.html</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的动态页面，参照</span>
						<span lang="EN-US">toInit()</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法设置打印属性和需要打印数据，在打印数据调整完毕可以调用</span>
						<span lang="EN-US">collectDataPos()</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获得调整后的数据位置，可以保存到数据库。<br /><br /></span>
				</font>
		</p>
		<font size="2">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">源码下载</span>
				</b>
				<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">：</span>
				<span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
						<a href="/Files/patterns/CertificatePrint_0.3.1.rar">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通用套打</span>
						</a>
				</span>
		</font>
<img src ="http://www.blogjava.net/patterns/aggbug/88240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-12-16 21:29 <a href="http://www.blogjava.net/patterns/archive/2006/12/16/cert_print_20061216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>velocity模板路径又一解</title><link>http://www.blogjava.net/patterns/archive/2006/11/28/velocity_template_path_another_method.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Tue, 28 Nov 2006 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/11/28/velocity_template_path_another_method.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/84041.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/11/28/velocity_template_path_another_method.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/84041.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/84041.html</trackback:ping><description><![CDATA[
		<font size="2">研究hibernatesynchronizer的源码，看到他将velocity模板和编译的类一起打包在jar包中，在获得模板时使用<br />Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")获得流，然后再将转变成字符串<br />public static String getStringFromStream(InputStream is) throws IOException {<br />        if (null == is)<br />            return null;<br />        try {<br />            InputStreamReader reader = new InputStreamReader(is);<br />            char[] buffer = new char[1024];<br />            StringWriter writer = new StringWriter();<br />            int bytes_read;<br />            while ((bytes_read = reader.read(buffer)) != -1) {<br />                writer.write(buffer, 0, bytes_read);<br />            }<br />            return (writer.toString());<br />        } finally {<br />            if (null != is)<br />                is.close();<br />        }<br />    }<br />最后调用velocity的方法<br />Velocity.evaluate(Context context, java.io.Writer out, java.lang.String logTag, java.lang.String instring) <br />从而生成文件。居然不知道velocity有这样的方法，挺无知的，为了路径焦头烂额，终于得解了。总结一下技巧：<br />1、Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")相对路径获得流；<br />2、Velocity.evaluate(...)方法使用；</font>
<img src ="http://www.blogjava.net/patterns/aggbug/84041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-11-28 14:21 <a href="http://www.blogjava.net/patterns/archive/2006/11/28/velocity_template_path_another_method.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在jsp中使用fckeditor 2.3</title><link>http://www.blogjava.net/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Fri, 03 Nov 2006 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/77356.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/77356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/77356.html</trackback:ping><description><![CDATA[
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">下载<span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 20pt; mso-char-indent-count: 2.0">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">从<span lang="EN-US">FCKeditor的官方站点<a href="http://www.fckeditor.net/">http://www.fckeditor.net/download</a>上下载FCKeditor 2.3.2和FCKeditor.Java，其中FCKeditor 2.3.2是源码，FCKeditor.Java是在jsp中使用的例程。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">瘦身<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">将<span lang="EN-US">FCKeditor 2.3.2解压到FCKeditor文件夹，然后删除如下文件或目录：<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">1、/_samples，/_testcases；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">2、删除/_documentation.html,_whatsnew.html,fckeditor.afp,fckeditor.asp,fckeditor.cfc,fckeditor.cfm,<br />fckeditor.lasso,fckeditor.php,fckeditor.pl,fckeditor.py<br />只剩下fckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml,htaccess.txt,license.txt；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">3、/editor/_source；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">4、/editor/filemanager/browser/default/connectors；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">5、/editor/filemanager/upload；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">6、语言包/editor/lang中只留下en.js、zh-cn.js；<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">哈哈，一下子从<span lang="EN-US">2.5M瘦到832K，爽呀！还可以在皮肤包里/editor/skins动动脑筋，比如只留一个sliver，这个好配色。<o:p></o:p></span></span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">配置<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">将<span lang="EN-US">FCKeditor的jsp中使用的例程和FCKeditor源码结合起来，解压FCKeditor.Java，将解压文件夹中web目录下的所有文件拷贝到FCKeditor目录中，这样在FCKeditor目录多了两个目录：<o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">├─<span lang="EN-US">_samples<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">  </span>│<span style="mso-spacerun: yes">  </span>index.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">  </span>│<span style="mso-spacerun: yes">  </span>sample.css<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">  </span>│<span style="mso-spacerun: yes">  </span>sampleslist.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">  </span>│<span style="mso-spacerun: yes">  </span><o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">  </span>└─jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample01.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample02.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample03.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample04.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample05.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample06.config.js<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample06.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sample07.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span>sampleposteddata.jsp<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">│<span lang="EN-US"><span style="mso-spacerun: yes">          </span><o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">└─<span lang="EN-US">WEB-INF<o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>│<span style="mso-spacerun: yes">  </span>web.xml<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>│<span style="mso-spacerun: yes">  </span><o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>└─lib<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>FCKeditor-2.3.jar<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>commons-fileupload.jar<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">看一下<span lang="EN-US">web.xml文件，里面增加了文件浏览和文件上传得servlet。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">修改文件<span lang="EN-US">FCKeditor/fckconfig.js<o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">修改属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">中文：<span lang="EN-US">FCKConfig.DefaultLanguage<span style="mso-tab-count: 2">     </span>= 'zh-cn' ;<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">皮肤：<span lang="EN-US">FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">使用<span lang="EN-US">servlet做文件浏览和上传<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">参考<span lang="EN-US"><a href="http://wiki.fckeditor.net/Developer%27s_Guide/Integration/Java">http://wiki.fckeditor.net/Developer%27s_Guide/Integration/Java</a><o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">//browser<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&amp;Connector=connectors/jsp/connector" ;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.FlashBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&amp;Connector=connectors/jsp/connector" ;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">//upload<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">修改<span lang="EN-US">web.xml增加FCKeditor的taglib<o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">从<span lang="EN-US">FCKeditor.Java解压目录/src目录下拷贝FCKeditor.tld文件到WEB-INF目录下，在web.xml文件中增加：<o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">&lt;taglib&gt;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>&lt;taglib-uri&gt;/WEB-INF/FCKeditor.tld&lt;/taglib-uri&gt;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>&lt;taglib-location&gt;/WEB-INF/FCKeditor.tld&lt;/taglib-location&gt;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">&lt;/taglib&gt;<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
						<o:p> </o:p>
				</span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">使用<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">jsp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面中作如下调用（具体如何使用可以看</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKeditor.tld定义</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）：</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">...</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">...</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;FCK:editor id="EditorDefault" basePath="/FCKeditor/"&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">This is FCKeditor demo!<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;/FCK:editor&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">...</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">运行例程<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将我们修改了半天的整个</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">FCKeditor目录拷贝到tomcat5.0.28（或其他web服务器）的webapps目录下，启动tomcat访问<a href="http://localhost:8080/FCKeditor/_samples/">http://localhost:8080/FCKeditor/_samples/</a> 试用一下FCKeditor 2.3.2的强大功能，有了demo在项目中如何使用，你自己琢磨吧！</span>
				<span lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例程下载：</span>
				<span lang="EN-US">
						<a href="/Files/patterns/FCKeditor.rar">FCKeditor</a>
						<o:p>
						</o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/77356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-11-03 11:00 <a href="http://www.blogjava.net/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts中不让页面跳转的小方法</title><link>http://www.blogjava.net/patterns/archive/2006/10/20/struts_deny_redirect.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Fri, 20 Oct 2006 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/10/20/struts_deny_redirect.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/76426.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/10/20/struts_deny_redirect.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/76426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/76426.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">使用</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> struts </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">做项目时，通常在信息录入页面点击</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> [ </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">保存</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> ] </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">按钮后会跳转到一个“保存成功！”的提示页面，小小的提示会带来一些问题：</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; tab-stops: list 21.0pt; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt">l</span>
				<span lang="EN-US" style="FONT-SIZE: 7pt; mso-fareast-font-family: Wingdings; mso-font-kerning: 0pt">         </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">多设计一个页面；</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; tab-stops: list 21.0pt; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt">l</span>
				<span lang="EN-US" style="FONT-SIZE: 7pt; mso-fareast-font-family: Wingdings; mso-font-kerning: 0pt">         </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">用户多增加一步操作（特别是在信息修改页面）；</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; tab-stops: list 21.0pt; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt">l</span>
				<span lang="EN-US" style="FONT-SIZE: 7pt; mso-fareast-font-family: Wingdings; mso-font-kerning: 0pt">         </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">带来页面刷新的重复提交的问题；</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">我们改变一下思路会带来意想不到的效果，同时也规避了以上问题。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<br />
				</span>
				<b>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt">方法一</span>
				</b>
				<span lang="EN-US" style="FONT-SIZE: 12pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> </span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left; tab-stops: list 18.0pt; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">1、</span>
				<span lang="EN-US" style="FONT-SIZE: 7pt; mso-fareast-font-family: 'Times New Roman'; mso-font-kerning: 0pt">  </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">修改你的信息录入页面，加入如下脚本</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p>
		</p>
		<table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">……</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;iframe name="tagFrame" style="display:none" frameborder="0"&gt;&lt;/iframe&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">……</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;script language="JavaScript"&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;!--</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">// </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">保存信息</span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
												</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">function saveInfo() {</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>testForm.action="test.do?method=save";<span style="mso-tab-count: 1">  </span></span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>testForm.target="tagFrame";</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>testForm.submit();</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">}</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">//--&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;/script&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
												</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p> </o:p>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left; tab-stops: list 18.0pt; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">2、</span>
				<span lang="EN-US" style="FONT-SIZE: 7pt; mso-fareast-font-family: 'Times New Roman'; mso-font-kerning: 0pt">  </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">修改你的提示页面</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p>
		</p>
		<table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;%@ page contentType="text/html; charset=GBK" %&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>alert(" </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">保存成功！</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> "); </span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>// </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这里是等待你点击</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> alert </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的确定按钮后跳转，神奇的</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> js </span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<span style="mso-tab-count: 1">    </span>parent.window.location.href='test.do?method=test';</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;/script&gt;</span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">简单改一下就</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> jsp </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">收获还不小。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<br />
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
						<br />
				</span>
				<b>
						<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 0pt">方法二</span>
				</b>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> <br />让action返回javascript完成提示和跳转：<o:p></o:p></span>
		</p>
		<p>
		</p>
		<table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">public ActionForward execute(ActionMapping mapping, <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 60pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 6.0" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">ActionForm form, HttpServletRequest request,<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">            </span>HttpServletResponse response) throws Exception {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 40pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 4.0" align="left">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。。。</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 40pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 4.0" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">// </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">发送的信息</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>String msg = "alert('</span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">操作成功！</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">');location.href='test.do?method=test';";<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>writeJsToFrontPage(response, msg);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>return null;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<br />
												</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">/**<br />     * </span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">向前端页面发送</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">javascript</span>
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">脚本</span>
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<br />     * <br />     * @param response<br />     * @param text<br />     * @throws IOException<br />     */ </span>
												<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">protected void writeJsToFrontPage(HttpServletResponse response, <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 210pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 21.0" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">String msg) throws IOException {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>response.setContentType("text/html; charset=utf-8");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>response.setHeader("Cache-Control", "no-cache");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>PrintWriter pw = response.getWriter();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>pw.write("&lt;SCRIPT TYPE='text/javascript'&gt;" + msg + "&lt;/SCRIPT&gt;");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">        </span>pw.close();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
														<span style="mso-spacerun: yes">    </span>}<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/76426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-10-20 17:43 <a href="http://www.blogjava.net/patterns/archive/2006/10/20/struts_deny_redirect.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hsqldb快速入门</title><link>http://www.blogjava.net/patterns/archive/2006/10/18/hsqldb_quick_start.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 18 Oct 2006 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/10/18/hsqldb_quick_start.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/75989.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/10/18/hsqldb_quick_start.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/75989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/75989.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 数据库环境配置和使用																		首先从http://www.hsqldb.org/下载一个hsqldb的稳定版本，解压后可以浏览解压目录下的index.html，它描述了各个目录所包含内容，在doc段里有一个重要的链接User Guide: index.html，有空好好研究吧！																										...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/10/18/hsqldb_quick_start.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/75989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-10-18 17:24 <a href="http://www.blogjava.net/patterns/archive/2006/10/18/hsqldb_quick_start.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）正则表达式的入门知识 </title><link>http://www.blogjava.net/patterns/archive/2006/06/05/regular_expression.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Mon, 05 Jun 2006 01:15:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/06/05/regular_expression.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/50416.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/06/05/regular_expression.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/50416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/50416.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">摘自：</font>
				<a href="http://blog.csdn.net/zbzgigi/archive/2006/05/30/763795.aspx">
						<font size="2">http://blog.csdn.net/zbzgigi/archive/2006/05/30/763795.aspx</font>
				</a>
				<br />
				<br />
		</p>
		<p>
				<font size="2">1、“.”为通配符，表示任何一个字符，例如：“a.c”可以匹配“anc”、“abc”、“acc”；<br />2、“[]”，在[]内可以指定要求匹配的字符，例如：“a[nbc]c”可以匹配“anc”、“abc”、“acc”；但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];</font>
		</p>
		<p>
				<font size="2">3、数量限定符号，表示匹配次数（或者叫做长度）的符号：</font>
		</p>
		<p>
				<font size="2">包括：“*”——0次或者多次<br />      “+”——1次或者多次<br />      “?”——0次或者1次<br />      “{n}”——匹配n次，n为整数<br />      “{n,m}”——匹配从n到m之间的某个数的次数；n和m都是整数；<br />      “{n,}”——匹配n到无穷次之间任意次数；<br />      “{,m}”——匹配0到m之间任意次数；<br />他们放到匹配格式的后面：<br />例如：<br />电话号码：024－84820482，02484820482(假设前面3或者4位，后面7或者8位，并且中间的减号可有可无)</font>
		</p>
		<p>
				<font size="2">都是符合规定的，那么可以用如下格式来匹配：[0-9]{3,4} \-? [0-9]{7,8}；<br />注意：“\”为转义字符，因为“-”在正则表达式用有代表一个范围的意义，例如：前面所说的[0-9]，</font>
		</p>
		<p>
				<font size="2">所以它需要转义字符“\”进行转义才可使用；<br />4、“^”为否符号，表示不想匹配的符号，例如：[^z][a-z]+可以匹配所有除“z”开头的以外的所有字</font>
		</p>
		<p>
				<font size="2">符串（长度大于2，因为“+”表示大于等于1的次数，从第二位开始都是小写英文字符）；<br />如果^放到[]的外边则表示以[]开头的字符串；^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符</font>
		</p>
		<p>
				<font size="2">串；<br />5、“|”或运算符，例如：a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”；<br />6、“$”以它前面的字符结尾的；例如：ab+$就可以被“abb”，“ab”匹配；<br />7、一些简单表示方法：<br />\d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],就是空格字符包括tab</font>
		</p>
		<p>
				<font size="2">，空格等等;\S表示[^\t\n\r\f]，就是非空格字符;<br />8、常用的匹配：<br />匹配中文字符： “[\u4e00-\u9fa5]”；<br />匹配双字节字符(包括汉字在内)：“[^\x00-\xff]”；<br />匹配空行的正则表达式：“\n[\s| ]*\r”；<br />匹配HTML标记的正则表达式：“/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/”；<br />匹配首尾空格的正则表达式：“(^\s*)|(\s*$)”；<br />匹配非负整数（正整数 + 0）：“^\d+$”；　　 <br />匹配正整数：“^[0-9]*[1-9][0-9]*$”； <br />匹配非正整数（负整数 + 0）：“^((-\d+)|(0+))$”；<br />匹配负整数：“^-[0-9]*[1-9][0-9]*$”；<br />匹配整数：“^-?\d+$”；<br />匹配非负浮点数（正浮点数 + 0）：“^\d+(\.\d+)?$”<br />匹配正浮点数：“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*</font>
		</p>
		<p>
				<font size="2">))$”；<br />^((-\d+(\.\d+)?)|(0+(\.0+)?))$　　//匹配非正浮点数（负浮点数 + 0） <br />^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$　　//匹配</font>
		</p>
		<p>
				<font size="2">负浮点数 <br />匹配浮点数：“^(-?\d+)(\.\d+)?$”；<br />匹配由数字、26个英文字母或者下划线组成的字符串：“^\w+$”；<br />匹配email地址：“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”；<br />匹配url：“^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$”<br /><span id="ArticleContent1_ArticleContent1_lblContent"></span></font>
		</p>
		<p>
				<span>
						<font size="2">下面是正则表达式中的一些常用模式。</font>
				</span>
		</p>
		<p>
				<font size="2">/pattern/  结果  <br />. 匹配除换行符以外的所有字符 <br />x? 匹配 0 次或一次 x 字符串 <br />x* 匹配 0 次或多次 x 字符串，但匹配可能的最少次数 <br />x+ 匹配 1 次或多次 x 字符串，但匹配可能的最少次数 <br />.* 匹配 0 次或一次的任何字符 <br />.+ 匹配 1 次或多次的任何字符 <br />{m} 匹配刚好是 m 个 的指定字符串 <br />{m,n} 匹配在 m个 以上 n个 以下 的指定字符串 <br />{m,} 匹配 m个 以上 的指定字符串 <br />[] 匹配符合 [] 内的字符 <br />[^] 匹配不符合 [] 内的字符 <br />[0-9] 匹配所有数字字符 <br />[a-z] 匹配所有小写字母字符 <br />[^0-9] 匹配所有非数字字符 <br />[^a-z] 匹配所有非小写字母字符 <br />^ 匹配字符开头的字符 <br />$ 匹配字符结尾的字符 <br />\d 匹配一个数字的字符，和 [0-9] 语法一样 <br />\d+ 匹配多个数字字符串，和 [0-9]+ 语法一样 <br />\D 非数字，其他同 \d <br />\D+ 非数字，其他同 \d+ <br />\w 英文字母或数字的字符串，和 [a-zA-Z0-9] 语法一样 <br />\w+ 和 [a-zA-Z0-9]+ 语法一样 <br />\W 非英文字母或数字的字符串，和 [^a-zA-Z0-9] 语法一样 <br />\W+ 和 [^a-zA-Z0-9]+ 语法一样 <br />\s 空格，和 [\n\t\r\f] 语法一样 <br />\s+ 和 [\n\t\r\f]+ 一样 <br />\S 非空格，和 [^\n\t\r\f] 语法一样 <br />\S+ 和 [^\n\t\r\f]+ 语法一样 <br />\b 匹配以英文字母,数字为边界的字符串 <br />\B 匹配不以英文字母,数值为边界的字符串 <br />a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串 <br />abc 匹配含有 abc 的字符串 <br />(pattern) () 这个符号会记住所找寻到的字符串，是一个很实用的语法。第一个 () 内所找到的字符串<br />变成 $1 这个变量或是 \1 变量，第二个 () 内所找到的字符串变成 $2 这个变量或是 \2 变量，以此<br />类推下去。  <br />/pattern/i i 这个参数表示忽略英文大小写，也就是在匹配字符串的时候，不考虑英文的大小写问题。 <br />\ 如果要在 pattern 模式中找寻一个特殊字符，如 "*"，则要在这个字符前加上 \ 符号，这样才会让特殊<br />字符失效 <br />3、正则表达式的八大原则<br />　　如果在 Unix 中曾经使用过 sed、awk、grep 这些命令的话，相信对于正则表达式(Regular Expression)<br />不会感到陌生。下面给大家介绍几条正则表达式使用过程中的 8 大原则。 </font>
		</p>
		<p>
				<font size="2">正则表达式在对付数据的战斗中可形成庞大的联盟——这常常是一场战争。我们要记住下面八条原则：</font>
		</p>
		<p>
				<font size="2">· 原则1：正则表达式有三种不同形式(匹配(m/ /)，替换(s/ / /eg)和转换(tr/ / /))。</font>
		</p>
		<p>
				<font size="2">· 原则2：正则表达式仅对标量进行匹配( $scalar =~ m/a/; 可以工作; @array =~ m/a/ 将把@array作为标量<br />对待，因此可能不会成功)。</font>
		</p>
		<p>
				<font size="2">· 原则3：正则表达式匹配一个给定模式的最早的可能匹配。缺省时，仅匹配或替换正则表达式<br />一次( $a = 'string string2'; $a =~ s/string/ /; 导致 $a = 'string 2')。</font>
		</p>
		<p>
				<font size="2">· 原则4：正则表达式能够处理双引号所能处理的任意和全部字符( $a =~ m/$varb/ 在匹配前把varb扩展为<br />变量；如果 $varb = 'a' $a = 'as'，$a =~ s/$varb/ /; 等价于 $a =~ s/a/ /; ，执行结果使 $a = " s" )。</font>
		</p>
		<p>
				<font size="2">· 原则5：正则表达式在求值过程中产生两种情况：结果状态和反向引用： $a=~ m/pattern/ 表示 $a 中是否有<br />子串 pattern 出现，$a =~ s/(word1)(word2)/$2$1/ 则“调换”这两个单词。</font>
		</p>
		<p>
				<font size="2">· 原则6：正则表达式的核心能力在于通配符和多重匹配运算符以及它们如何操作。$a =~ m/\w+/ 匹配一个或多个<br />单词字符；$a =~ m/\d/" 匹配零个或多个数字。</font>
		</p>
		<p>
				<font size="2">· 原则7：如果欲匹配不止一个字符集合，Perl使用 "|" 来增加灵活性。如果输入 m/(cat|dog)/ 则相当于“匹配<br />字符串 cat 或者 dog。</font>
		</p>
		<p>
				<font size="2">· 原则8：Perl用 (?..) 语法给正则表达式提供扩展功能。</font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/50416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-06-05 09:15 <a href="http://www.blogjava.net/patterns/archive/2006/06/05/regular_expression.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小壁虎</title><link>http://www.blogjava.net/patterns/archive/2006/06/02/little_gecho.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Fri, 02 Jun 2006 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/06/02/little_gecho.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/49993.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/06/02/little_gecho.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/49993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/49993.html</trackback:ping><description><![CDATA[
		<p>       <font size="2">前些日子，偶然发现冰箱的后面墙上趴着一只小壁虎，体长大概5个厘米，显然是个幼崽。我就想，它是怎么爬到我家里来的，它为什么会爬到我家里来，以后它吃什么。自己也觉得挺好笑的，为什么会有这些想法。仔细搜索脑海深处，因为在它身上有好多美好的童年回忆。自嘲一下，许是“六一”快到了吧！</font></p>
		<p>
				<font size="2">        我觉得它应该属于更广阔的屋外空间，而不属于这狭小的屋内，那儿有它的世界，有它的精彩，更有它的食物。我生怕它饿死了，有好几次想抓住它，把它放到窗外，可是一眨眼，它就跑没了。我还特意的到处寻找，可终究没找到。只得每天上班前给躲在角落旮旯里的它打声招呼，祝福它别被饿死，可爱奇特的小生灵。</font>
		</p>
		<p>
				<font size="2">        时间一长这事就淡忘了，今天早上起来，外面的天气好象好起来了，拉开窗帘，伸个懒腰，摘下眼镜，搂搂睡意朦胧的眼睛。噫，地上哪来的黑线团，戴上眼镜，一看，呀！这不是小壁虎吗？尾巴断了，趴在那，一只爪子在抖动着，皮肤也失去了光泽。唉！我想可能小壁虎本来爬上了窗帘，我一拉窗帘它就掉了下来，正好被我踩在了脚下。不知道它还能不能活了，我赶紧把它拣起来，放到窗外的花盆中，那儿有点湿气，有一些小虫子。我看着它，它趴在那一动不动，我想大概是死了。等到洗漱完再来看，噫！不见了，是不是爬走了。心中暗暗窃喜，要是小壁虎还活着，这真是太好了。</font>
		</p>
		<p>
				<font size="2">        一只小小的壁虎，走进了本不属于它的世界，饱经折磨，我想它应该有更强的生命力。也许这就是它重生的切机，虽然，还带着沉痛的伤，但毕竟获得了新生。</font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/49993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-06-02 17:08 <a href="http://www.blogjava.net/patterns/archive/2006/06/02/little_gecho.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初探mysql-5.0.20</title><link>http://www.blogjava.net/patterns/archive/2006/05/27/mysql_summary.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sat, 27 May 2006 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/27/mysql_summary.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/48485.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/27/mysql_summary.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/48485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/48485.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">1、mysql-4.0.22不支持嵌套查询，mysql-5.0.20可以。</font>
		</p>
		<p>
				<font size="2">2、乱码问题<br />web应用的数据库连接：<br />jdbc.driverClassName=org.gjt.mm.mysql.Driver<br />jdbc.url=jdbc:mysql://localhost/cs?useUnicode=true&amp;amp;characterEncoding=gbk<br />jdbc.userName=cs<br />jdbc.password=cs</font>
		</p>
		<p>
				<font size="2">mysql-5.0.20的my.ini文件：<br />default-character-set=gbk<br />有两处，一处指数据存取过程中的编码，一处指创建schema或table的默认编码。所以紧记设完编码后再建schema或table，否则还是乱码。</font>
		</p>
		<p>
				<font size="2">3、使用MySQL Administrator 1.1建立schema、table或user等，使用MySQL Query Browser 1.1查询结果，使用MySQL Workbench建模。</font>
		</p>
		<p>
				<font size="2">4、mysql基本命令<br />启动：在安装时安装windows的服务，从服务启动和停止；<br />登录：mysql -hlocalhost -uroot -padmin<br />其他：show databases;<br />             use XXDB;<br />             show tables;<br /></font>
				<br />
				<font size="2">5、数据库备份和恢复<br />备份：<strong><em>mysqldump</em></strong> -hlocalhost -uroot -padmin database_name&gt;d:/database_name.data<br />恢复：首先创建数据库database_name；然后命令 <strong><em>mysql</em></strong>-hlocalhost -uroot -padmin database_name&lt;d:/database_name.data</font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/48485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-27 15:20 <a href="http://www.blogjava.net/patterns/archive/2006/05/27/mysql_summary.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>prototype.js + util.js使ajax更加简单透明</title><link>http://www.blogjava.net/patterns/archive/2006/05/14/prototype_util_ajax.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sun, 14 May 2006 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/14/prototype_util_ajax.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/46130.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/14/prototype_util_ajax.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/46130.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/46130.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">近一段时间，学习<span lang="EN-US">ajax的应用，接触了dwr框架和AjaxTags。总体觉得dwr使用配置比较复杂，不太透明，使人有一种不太放心的感觉，且对struts的支持不够好。AjaxTags的使用具有页面元素的针对性，不够自由。故此我想将prototype.js和dwr的util.js结合起来，使我们的ajax应用更加透明和简单。<br /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
				<br />
				<strong> <span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">这样组合的优势？<span lang="EN-US"><o:p></o:p></span></span></strong>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">只是增加了两个<span lang="EN-US">js文件和处理你页面的js，这些东西对你是透明的，很简单。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">不影响服务器端的架构，不管你是只使用<span lang="EN-US">struts，还是struts + spring + hibernate。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<br />
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">服务端向客户端提供了什么？<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">简单对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">String、int、Date等类型的单一数据，返回给客户端显示都是字符串。<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">复杂对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">用户自定义<span lang="EN-US">POJO对象。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">列表对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">List对象，里面放的是同一POJO对象。<o:p></o:p></span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">客户端可以解析什么？<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">简单对象没有问题。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">复杂对象可以使用类似于<span lang="EN-US">map对象来代替，例如：<o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">public class Person {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>private int id;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>private String name;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>private String gender;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>private int age;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>public void setId(int id) {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>this.id = id;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>public String getName() {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>return name;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">。。。<span lang="EN-US"><o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">可使用如下形式来表示：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">var person = { id:'001', name:'test1', gender:'男', age:'15' };<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">列表对象，可以使用<span lang="EN-US">array对象中放置map对象表示，例如：<o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">var people =[{ id:'001', name:'test1', gender:'男', age:'15' },{ id:'002', name:'test2', gender:'女', age:'13' } ]<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">客户端怎么解析？<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">这时就可以发挥<span lang="EN-US">util.js的功能了，在<a href="http://getahead.ltd.uk/dwr/browser/util">dwr网站</a>上可以详见。<o:p></o:p></span></span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">ajax在哪里？<o:p></o:p></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">ajax的应用在prototype.js中，它针对ajax提供了好多方法，详细可见<a href="https://compdoc2cn.dev.java.net/prototype/html/prototype.js.cn.html">prototype开发笔记</a>。<o:p></o:p></span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">struts怎么返回？<o:p></o:p></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">我想代码你一看就明白：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>try {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>String text = null;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 用户登录名<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>String logonName = request.getParameter("logonName");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>logonName = StringUtil.convertEncoding(logonName,"ISO8859_1");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 到数据库中进行检验...<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>System.out.println("logonName:" + logonName);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 该用户已经存在<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>text = logonName;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 将结果返回页面<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>response.setContentType("text/xml; charset=UTF-8");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>response.setHeader("Cache-Control", "no-cache");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>PrintWriter pw = response.getWriter();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>pw.write(text);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>pw.close();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>} catch (Exception e) {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>e.printStackTrace();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">   </span>
														<span style="mso-spacerun: yes"> </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-tab-count: 2">        </span>
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-tab-count: 1">    </span>//注意<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>return null;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">到底怎么用？<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">1、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">客户端使用<span lang="EN-US">get方式发送数据，如果要发送的是form数据可以使用prototype.js中的方法生成参数，例如：var pars = Form.serialize(document.all.personForm)。代码片断如下：<o:p></o:p></span></span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">/*<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">增加人员<span lang="EN-US"><o:p></o:p></span></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">*/<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">function writePerson() {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-tab-count: 1">    </span>var url = 'ajax.do?method=showTableRows';<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">  </span>var pars = Form.serialize(document.all.personForm);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">  </span>
														<o:p>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes"> </span>
														<span style="mso-tab-count: 1">   </span>new Ajax.Request(<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">      </span>url,<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">      </span>{method: 'get', parameters: pars, onComplete: personResult}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">  </span>);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">function personResult(result){<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-tab-count: 1">    </span>fillTable(eval(result.responseText));<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">2、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">服务器端的<span lang="EN-US">action接受数据可以使用ActionForm（ActionServlet会自动封装数据字串的），也可以使用：String personId = request.getParameter("personId")这样的方法单独得到数据。<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">3、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">在服务器端使用<span lang="EN-US">AjaxUtil（我写的一个工具类），将结果转变成map或array，再返回给客户端。<o:p></o:p></span></span>
				<br />
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">import java.lang.reflect.Field;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">import java.lang.reflect.InvocationTargetException;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">import java.util.List;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">import org.apache.commons.beanutils.BeanUtils;<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">public class AjaxUtil {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>/**<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* 将list结构转变成js的array结构，要求list中包含的是model<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* 例如：[{id:'1001',name:'test1'},{id:'1002',name:'test2'},{id:'1003',name:'test3'}]<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @param list<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>*<span style="mso-spacerun: yes">            </span>List结构<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @return js的array结构<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws IllegalAccessException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws InvocationTargetException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws NoSuchMethodException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>*/<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>public static String list2StrArray(List list) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>StringBuffer strMap = new StringBuffer();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>strMap.append("[");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>int listSize = list.size();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>for (int i = 0; i &lt; listSize; i++) {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>Object obj = list.get(i);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>if (i != listSize - 1)<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">   </span>
														<span style="mso-spacerun: yes">             </span>strMap.append(model2StrMap(obj)).append(",");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>else<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">                </span>strMap.append(model2StrMap(obj));<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>strMap.append("]");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>return strMap.toString();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>/**<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* 将model的结构转变成js的map结构<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* 例如：{id:'1001',name:'test'}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @param obj<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>*<span style="mso-spacerun: yes">            </span>任一对象<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @return js的map结构<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* <o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws IllegalAccessException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws InvocationTargetException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>* @throws NoSuchMethodException<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">     </span>*/<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>public static String model2StrMap(Object obj) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>StringBuffer strMap = new StringBuffer();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 获得model的属性字段<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>Class clazz = obj.getClass();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>Field[] fields = clazz.getDeclaredFields();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>// 取出mode的属性值<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>strMap.append("{");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>for (int i = 0; i &lt; fields.length; i++) {<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>String fieldName = fields[i].getName();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>String fieldValue = BeanUtils.getProperty(obj, fieldName);<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>if (i != fields.length - 1)<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">                </span>strMap.append(fieldName + ":'" + fieldValue + "',");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">            </span>else<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">                </span>strMap.append(fieldName + ":'" + fieldValue + "'");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>strMap.append("}");<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">        </span>return strMap.toString();<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<span style="mso-spacerun: yes">    </span>}<o:p></o:p></span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">}<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">4、<span style="FONT: 7pt 'Times New Roman'"><font size="2">  </font></span></span>
				</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">客户端得到<span lang="EN-US">map或array后，使用dwr的util.js提供的方法向页面元素填充数据。<o:p></o:p></span></span>
		</p>
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span style="FONT-SIZE: 10pt; LINE-HEIGHT: 240%; FONT-FAMILY: 宋体">例程下载<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
						<a href="/Files/patterns/ajaxdemo.rar">simpleAjaxDemo</a>
						<o:p>
						</o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/46130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-14 21:29 <a href="http://www.blogjava.net/patterns/archive/2006/05/14/prototype_util_ajax.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单灵活的权限树</title><link>http://www.blogjava.net/patterns/archive/2006/05/14/authority_tree.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sun, 14 May 2006 01:11:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/14/authority_tree.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/46047.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/14/authority_tree.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/46047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/46047.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近写了一棵权限树，因为在写之前到网上				google 				了一下，好像没有比较完整且简单的做法，故将结果与各位共享一下。																								我是将				dree 				作了一些修改：																																										1、				...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/05/14/authority_tree.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/46047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-14 09:11 <a href="http://www.blogjava.net/patterns/archive/2006/05/14/authority_tree.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库查询的优化</title><link>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Tue, 09 May 2006 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/45250.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/45250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/45250.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 索引使用的注意点																																																														1)      												合理使用索引																																														索引是数据库中重要的数据结构...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/45250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-09 17:38 <a href="http://www.blogjava.net/patterns/archive/2006/05/09/index_sql_optimize.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>axis使用笔记</title><link>http://www.blogjava.net/patterns/archive/2006/05/06/axis_record0.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sat, 06 May 2006 12:31:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/05/06/axis_record0.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/44803.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/05/06/axis_record0.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/44803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/44803.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 软件环境																										1、  												Windows 2000 professional sp4																										2、  												axis-1_3 （从http://ws.apache.org/axis/下载）;						...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/05/06/axis_record0.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/44803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-05-06 20:31 <a href="http://www.blogjava.net/patterns/archive/2006/05/06/axis_record0.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）oracle系统表查询</title><link>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Tue, 11 Apr 2006 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/40402.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/40402.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/40402.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">摘自：</font>
				<a href="http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html">
						<font size="2">http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html</font>
				</a>
				<br />
				<br />
				<font size="2">数据字典dict总是属于Oracle用户sys的。 <br />　　1、用户： <br />　　　select username from dba_users; <br />　　改口令 <br />　　　alter user spgroup identified by spgtest; <br />　　2、表空间： <br />　　　select * from dba_data_files; <br />　　　select * from dba_tablespaces;//表空间 </font>
		</p>
		<p>
				<font size="2">　　　select tablespace_name,sum(bytes), sum(blocks) <br />　　　　from dba_free_space group by tablespace_name;//空闲表空间 </font>
		</p>
		<p>
				<font size="2">　　　select * from dba_data_files <br />　　　　where tablespace_name='RBS';//表空间对应的数据文件 </font>
		</p>
		<p>
				<font size="2">　　　select * from dba_segments <br />　　　　where tablespace_name='INDEXS'; <br />　　3、数据库对象： <br />　　　select * from dba_objects; <br />　　　CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 <br />　　　PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 <br />　　4、表： <br />　　　select * from dba_tables; <br />　　　analyze my_table compute statistics;-&gt;dba_tables后6列 <br />　　　select extent_id,bytes from dba_extents <br />　　　where segment_name='CUSTOMERS' and segment_type='TABLE' <br />　　　order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息 <br />　　　列信息：<br />             &lt;1&gt;.<br />　　　　select distinct table_name <br />　　　　from user_tab_columns <br />　　　　where column_name='SO_TYPE_ID'; <br />            &lt;2&gt;.<br />                 <font style="BACKGROUND-COLOR: #ffffff">查询表的列名、注释、类型、长度<br />                  select a.table_name,a.COLUMN_NAME,b.COMMENTS,a.DATA_TYPE,a.DATA_LENGTH<br />                  from user_tab_columns a,user_col_comments b<br />                  where a.table_NAME = b.table_NAME<br />                        and a.COLUMN_NAME = b.COLUMN_NAME<br />                        and a.TABLE_NAME = 'table_name';<br /></font>            <br />　　5、索引：　 <br />　　　select * from dba_indexes;//索引，包括主键索引 <br />　　　select * from dba_ind_columns;//索引列 <br />　　　select i.index_name,i.uniqueness,c.column_name <br />　　　　from user_indexes i,user_ind_columns c <br />　　　　　where i.index_name=c.index_name <br />　　　　　and i.table_name ='ACC_NBR';//联接使用 <br />　　6、序列： <br />　　　select * from dba_sequences; <br />　　7、视图： <br />　　　select * from dba_views; <br />　　　select * from all_views; <br />　　text 可用于查询视图生成的脚本 <br />　　8、聚簇： <br />　　　select * from dba_clusters; <br />　　9、快照： <br />　　　select * from dba_snapshots; <br />　　快照、分区应存在相应的表空间。 <br />　　10、同义词： <br />　　　select * from dba_synonyms <br />　　　　where table_owner='SPGROUP'; <br />　　　　//if owner is PUBLIC,then the synonyms is a public synonym. <br />　　　　　if owner is one of users,then the synonyms is a private synonym. <br />　　11、数据库链： <br />　　　select * from dba_db_links; <br />　　在spbase下建数据库链 <br />　　　create database link dbl_spnew <br />　　　connect to spnew identified by spnew using 'jhhx'; <br />　　　insert into </font>
				<a href="mailto:acc_nbr@dbl_spnew">
						<font size="2">acc_nbr@dbl_spnew</font>
				</a>
				<font size="2">
						<br />　　　select * from acc_nbr where nxx_nbr='237' and line_nbr='8888'; <br />　　12、触发器： <br />　　　select * from dba_trigers; <br />　　存储过程，函数从dba_objects查找。 <br />　　其文本：select text from user_source where name='BOOK_SP_EXAMPLE'; <br />　　建立出错：select * from user_errors; <br />　　oracle总是将存储过程，函数等软件放在SYSTEM表空间。 <br />　　13、约束： <br />　　（1）约束是和表关联的，可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 <br />　　可以临时禁止约束，如： <br />　　　alter table book_example <br />　　　disable constraint book_example_1; <br />　　　alter table book_example <br />　　　enable constraint book_example_1; <br />　　（2）主键和外键被称为表约束，而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面，而列约束可放在列定义的同一行，这样更具有可读性。 <br />　　（3）列约束可从表定义看出，即describe;表约束即主键和外键，可从dba_constraints和dba_cons_columns 查。 <br />　　　select * from user_constraints <br />　　　where table_name='BOOK_EXAMPLE'; <br />　　　select owner,CONSTRAINT_NAME,TABLE_NAME <br />　　　　from user_constraints <br />　　　　where constraint_type='R' <br />　　　　order by table_name; <br />　　（4）定义约束可以无名（系统自动生成约束名）和自己定义约束名（特别是主键、外键） <br />　　如：create table book_example <br />　　　　(identifier number not null); <br />　　　　create table book_example <br />　　　　(identifier number constranit book_example_1 not null); <br />　　14、回滚段： <br />　　在所有的修改结果存入磁盘前，回滚段中保持恢复该事务所需的全部信息，必须以数据库发生的事务来相应确定其大小（DML语句才可回滚，create,drop,truncate等DDL不能回滚）。 <br />　　回滚段数量=并发事务/4，但不能超过50；使每个回滚段大小足够处理一个完整的事务； <br />　　　create rollback segment r05 <br />　　　tablespace rbs; <br />　　　create rollback segment rbs_cvt <br />　　　tablespace rbs <br />　　　storage(initial 1M next 500k); <br />　　使回滚段在线 <br />　　　alter rollback segment r04 online; <br />　　用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 <br />　　回滚段的区间信息 <br />　　　select * from dba_extents <br />　　　where segment_type='ROLLBACK' and segment_name='RB1'; <br />　　回滚段的段信息,其中bytes显示目前回滚段的字节数 <br />　　　select * from dba_segments <br />　　　　where segment_type='ROLLBACK' and segment_name='RB1'; <br />　　为事物指定回归段 <br />　　　set transaction use rollback segment rbs_cvt <br />　　针对bytes可以使用回滚段回缩。 <br />　　　alter rollback segment rbs_cvt shrink; <br />　　　select bytes,extents,max_extents from dba_segments <br />　　　　where segment_type='ROLLBACK' and segment_name='RBS_CVT'; <br />　　回滚段的当前状态信息： <br />　　　select * from dba_rollback_segs <br />　　　　where segment_name='RB1'; <br />　　比多回滚段状态status，回滚段所属实例instance_num <br />　　查优化值optimal <br />　　　select n.name,s.optsize <br />　　　　from v$rollname n,v$rollstat s <br />　　　　　where n.usn=s.usn; <br />　　回滚段中的数据 <br />　　　set transaction use rollback segment rb1;/*回滚段名*/ <br />　　　select n.name,s.writes <br />　　　　from v$rollname n,v$rollstat s <br />　　　　　where n.usn=s.usn; <br />　　当事务处理完毕，再次查询$rollstat，比较writes(回滚段条目字节数)差值，可确定事务的大小。 <br />　　查询回滚段中的事务 <br />　　　column rr heading 'RB Segment' format a18 <br />　　　column us heading 'Username' format a15 <br />　　　column os heading 'Os User' format a10 <br />　　　column te heading 'Terminal' format a10 <br />　　　select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te <br />　　　　from v$lock l,v$session s,v$rollname r <br />　　　　　where l.sid=s.sid(+) <br />　　　　　and trunc(l.id1/65536)=R.USN <br />　　　　　and l.type='TX' <br />　　　　　and l.lmode=6 <br />　　　order by r.name; <br />　　15、作业 <br />　　查询作业信息 <br />　　　select job,broken,next_date,interval,what from user_jobs; <br />　　　select job,broken,next_date,interval,what from dba_jobs; <br />　　查询正在运行的作业 <br />　　　select * from dba_jobs_running; <br />　　使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟 <br />    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。<br /></font>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/40402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-04-11 11:04 <a href="http://www.blogjava.net/patterns/archive/2006/04/11/oracle_systable_query.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在DWR中调用Http Servlet 对象</title><link>http://www.blogjava.net/patterns/archive/2006/04/07/dwr_access_servletobjects.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Fri, 07 Apr 2006 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/04/07/dwr_access_servletobjects.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/39926.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/04/07/dwr_access_servletobjects.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/39926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/39926.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font face="Times New Roman">
						<font size="2">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们在实际的</span>
								<span lang="EN-US">web</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用开发过程中，在用户登录后会向</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中塞入一些信息（例如用户信息，菜单信息等），在页面提交后，会从</span>
								<span lang="EN-US">session</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中取出这些信息，拼成完整的业务记录，保存到数据库中。此时就要求</span>
								<span lang="EN-US">DWR</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以与</span>
								<span lang="EN-US">Servlet </span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象通信。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font face="Times New Roman">
						<font size="2">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其实</span>
								<span lang="EN-US">DWR</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">已经考虑好了，在</span>
								<span lang="EN-US">DWR1.1</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中可以利用</span>
								<span lang="EN-US">uk.ltd.getahead.dwr.WebContext</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
								<span lang="EN-US">uk.ltd.getahead.dwr.WebContextFactory</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来和</span>
								<span lang="EN-US">Http Servlet</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的标准对象进行通信，包括：</span>
						</font>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
												<font face="Times New Roman">
														<font size="2">
																<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
																		<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
																</span>
																<span lang="EN-US">HttpServletRequest </span>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
												<font face="Times New Roman">
														<font size="2">
																<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
																		<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
																</span>
																<span lang="EN-US">HttpServletResponse </span>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
												<font face="Times New Roman">
														<font size="2">
																<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
																		<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
																</span>
																<span lang="EN-US">HttpSession </span>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
												<font face="Times New Roman">
														<font size="2">
																<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
																		<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
																</span>
																<span lang="EN-US">ServletContext </span>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
												<font face="Times New Roman">
														<font size="2">
																<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
																		<span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
																</span>
																<span lang="EN-US">ServletConfig</span>
														</font>
												</font>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								<font face="Times New Roman">具体的使用方法如下：</font>
						</span>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">import javax.servlet.http.HttpServletRequest;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">import uk.ltd.getahead.dwr.WebContext;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">import uk.ltd.getahead.dwr.WebContextFactory;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">///</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">WebContext ctx = WebContextFactory.get();</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">HttpServletRequest req = ctx.getHttpServletRequest();</font>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="2">
						<span lang="EN-US">
								<span style="mso-tab-count: 1">       </span>WebContext</span>
						<font face="Times New Roman">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是使用</span>
								<span lang="EN-US">ThreadLocal</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">保存的，你可以看一下</span>
								<span lang="EN-US">uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">源码，所以可以在任何地方使用它，例如在上一篇的</span>
								<span lang="EN-US">demo</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中进行测试如下：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font face="Times New Roman">
						<font size="2">
								<b style="mso-bidi-font-weight: normal">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
										<span lang="EN-US">index.html</span>
								</b>
								<b style="mso-bidi-font-weight: normal">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">头部增加如下代码并改名为</span>
										<span lang="EN-US">index.jsp<o:p></o:p></span>
								</b>
						</font>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">&lt;%@ page contentType="text/html; charset=GBK" %&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">&lt;%</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">System.out.println("This is DWR servlet object!");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">session.setAttribute("dwr","love dwr");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">%&gt;</font>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font face="Times New Roman">
						<font size="2">
								<b style="mso-bidi-font-weight: normal">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
										<span lang="EN-US">MessageDao.java</span>
								</b>
								<b style="mso-bidi-font-weight: normal">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的代码如下</span>
										<span lang="EN-US">
												<o:p>
												</o:p>
										</span>
								</b>
						</font>
				</font>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">package test.dwr;<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">import javax.servlet.http.HttpServletRequest;<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">import uk.ltd.getahead.dwr.WebContext;<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">import uk.ltd.getahead.dwr.WebContextFactory;<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">public class MessageDao {<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">    </span>public Message save(Message message) {<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>
																<span style="COLOR: red">WebContext ctx = WebContextFactory.get();<o:p></o:p></span>
														</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>HttpServletRequest req = ctx.getHttpServletRequest();<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>
																<o:p>
																</o:p>
														</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">       </span>
																<span style="COLOR: red">
																		<span style="mso-spacerun: yes"> </span>System.out.println("========HttpServletRequest Begin=======");<o:p></o:p></span>
														</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("req:" + req.getRemoteHost());<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("req-session:" + req.getSession().getAttribute("dwr"));<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("text:" + req.getParameter("text"));<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("from:" + req.getParameter("from"));<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US" style="COLOR: red">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("=========HttpServletRequest End========");<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("========Lucky DWR Begin=======");<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("text:" + message.getText());<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("from:" + message.getFrom());<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>System.out.println("=========Lucky DWR End========");<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>return message;<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">    </span>}<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p>
																<font size="2"> </font>
														</o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">    </span>public Message get() {<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">        </span>return new Message("This is the first dwr demo!", "test");<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">
																<span style="mso-spacerun: yes">    </span>}<o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font size="2">}<b style="mso-bidi-font-weight: normal"><o:p></o:p></b></font>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US">
								<o:p>
										<font size="2"> </font>
								</o:p>
						</span>
				</b>
		</p>
<img src ="http://www.blogjava.net/patterns/aggbug/39926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-04-07 22:09 <a href="http://www.blogjava.net/patterns/archive/2006/04/07/dwr_access_servletobjects.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR使得Java中的AJAX变得简单</title><link>http://www.blogjava.net/patterns/archive/2006/04/02/first_dwr_demo.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Sun, 02 Apr 2006 12:41:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/04/02/first_dwr_demo.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/38766.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/04/02/first_dwr_demo.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/38766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/38766.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DWR						是一个开源的工具，她利用						Java						的反射和						AJAX						技术实现了						javascript						与						java						类的通信。官方网站是：														http://getahead.ltd.uk/dwr/																			...&nbsp;&nbsp;<a href='http://www.blogjava.net/patterns/archive/2006/04/02/first_dwr_demo.html'>阅读全文</a><img src ="http://www.blogjava.net/patterns/aggbug/38766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-04-02 20:41 <a href="http://www.blogjava.net/patterns/archive/2006/04/02/first_dwr_demo.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用dom4j和XPath</title><link>http://www.blogjava.net/patterns/archive/2006/03/08/Dom4jAndXPath.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 08 Mar 2006 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/03/08/Dom4jAndXPath.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/34366.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/03/08/Dom4jAndXPath.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/34366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/34366.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置开发包</SPAN><SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>dom4j-1.6.1.jar<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US>jaxen-1.1-beta-6.jar</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US>XPath</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必备）</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取某一节点</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>Element root = (Element) document.selectSingleNode("//root");<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取某一节点的属性</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>Attribute attribute = (Attribute) document.selectSingleNode("//root/cell/@value");<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用经验</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们在做系统间交互时，通常通过自定义的</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件进行数据交换。例如：系统</SPAN><SPAN lang=EN-US>A</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要向系统</SPAN><SPAN lang=EN-US>B</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">传输一个</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字串的条件如下：</SPAN></FONT></FONT></P>
<P>
<TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=569>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&lt;?xml version="1.0" encoding="gb2312"?&gt; <o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&lt;root systemid="Darenkou" userid="admin" default="DA" icon="0000"&gt;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;cell value=""/&gt;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma size=2>&lt;/root&gt;</FONT></SPAN></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统</SPAN><SPAN lang=EN-US>A</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只需填充</SPAN><SPAN lang=EN-US>cell</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">节点的</SPAN><SPAN lang=EN-US>value</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性值，我的建议是将这段</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写成本地文件，每次传输时首先读取</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，再置</SPAN><SPAN lang=EN-US>cell</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">节点的</SPAN><SPAN lang=EN-US>value</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性值，然后将</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象转变成字串传给系统</SPAN><SPAN lang=EN-US>B</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。这样的优点是：一般</SPAN><SPAN lang=EN-US>systemid="Darenkou" userid="admin" default="DA" icon="0000" </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是传输参数，当有所变动时只需修改本地文件即可。</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><FONT face=Tahoma><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">详细例程</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>test.xml<o:p></o:p></FONT></FONT></SPAN></P>
<P>
<TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=569>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&lt;?xml version="1.0" encoding="gb2312"?&gt; <o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US>&lt;root id="TK12" name="</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理员</SPAN><SPAN lang=EN-US>" value=""/&gt;</SPAN></FONT></FONT></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma size=2>XmlTest.java</FONT></SPAN></P>
<P>
<TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=569>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.io.File;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.io.IOException;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.io.StringWriter;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.io.UnsupportedEncodingException;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.util.HashMap;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import java.util.Iterator;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.Document;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.DocumentException;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.Element;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.io.OutputFormat;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.io.SAXReader;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>import org.dom4j.io.XMLWriter;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>public class XmlTest {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>public static String generateXml(HashMap map) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>String strXml = null;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (map != null) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>SAXReader reader = new SAXReader();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Document document = null;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>try {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>document = reader.read(new File("D:/test.xml"));<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} catch (DocumentException e) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>e.printStackTrace();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Element root = (Element) document.selectSingleNode("//root");<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>root.attribute("value").setValue("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分布</SPAN><SPAN lang=EN-US>");<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Iterator iter = map.keySet().iterator();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>while (iter.hasNext()) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>String key = (String) iter.next();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>String value = (String) map.get(key);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Element element = root.addElement("cell").addAttribute("value",<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>key);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>element.addElement("element").addAttribute("type", "</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数值</SPAN><SPAN lang=EN-US>")<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>.addAttribute("name", "</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">人数</SPAN><SPAN lang=EN-US>").addText(value);<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>strXml = encodeXml(document, "gb2312");<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return strXml;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>private static String encodeXml(Document document, String aEncode) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>// </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行编码转换</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>StringWriter sw = new StringWriter();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>OutputFormat format = OutputFormat.createPrettyPrint();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>format.setEncoding(aEncode);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>try {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>XMLWriter writer = new XMLWriter(format);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>writer.setWriter(sw);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>writer.write(document);<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} catch (UnsupportedEncodingException e) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>e.printStackTrace();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} catch (IOException e) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>e.printStackTrace();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>return sw.toString();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>public static void main(String[] args) {<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>HashMap map = new HashMap();<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>map.put("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上海</SPAN><SPAN lang=EN-US>", "200");<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>map.put("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">北京</SPAN><SPAN lang=EN-US>", "300");<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face=Tahoma><FONT size=2><SPAN lang=EN-US><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>map.put("</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">天津</SPAN><SPAN lang=EN-US>", "300");<o:p></o:p></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>System.out.println(generateXml(map));<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma size=2>}</FONT></SPAN></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Tahoma><FONT size=2>&nbsp;<o:p></o:p></FONT></FONT></SPAN></P><img src ="http://www.blogjava.net/patterns/aggbug/34366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-03-08 21:32 <a href="http://www.blogjava.net/patterns/archive/2006/03/08/Dom4jAndXPath.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初识wxPython（环境配置篇）</title><link>http://www.blogjava.net/patterns/archive/2006/03/08/wxPython_env.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 08 Mar 2006 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/03/08/wxPython_env.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/34365.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/03/08/wxPython_env.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/34365.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/34365.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>&nbsp;</o:p></SPAN></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 22.0pt">背景<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">使用<SPAN lang=EN-US>java已经两年多了，有时需开发一些桌面程序作为辅助工具，熟悉java那就用java开发了，可恶的是很小的应用程序却要背负着一个庞大、累赘的jre，特别是在给用户部署时，还要特意的安装jre，真是痛苦。而且swing的界面总是让人感到不伦不类，swt好点，但是总得要拖着jre，郁闷。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">正好这段时间心血来潮，想学一点<SPAN lang=EN-US>c的知识，g来g去却g到了wxPython这个神奇的东东：跨平台、本地界面、语言简洁…其实wxPython是基于Python解释器调用wxWidgets的，所以它具有Python语言的简洁高效，又具有wxWidgets的本地化和跨平台。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">想详细了解，就看下面网站：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">Python：<A href="http://www.python.org/"><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://www.python.org/</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">WxWidgets：<A href="http://wxwidgets.org/"><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://wxwidgets.org/</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">WxPython：<A href="http://www.wxpython.org/"><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://www.wxpython.org/</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">想看究竟是什么，就跟着我配置环境看<SPAN lang=EN-US>demo吧！<o:p></o:p></SPAN></SPAN></P>
<H1 style="MARGIN: 17pt 0cm 16.5pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 22.0pt">配置<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></H1>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><B><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">下载安装如下软件：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">1、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">python-2.4.msi：<A href="http://www.python.org/download/"><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://www.python.org/download/</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">2、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">wxPython2.6-win32-unicode-2.6.1.0-py24.exe<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">3、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">wxPython2.6-win32-docs-demos-2.6.1.0.exe<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">4、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">2和3都在<A href="http://www.wxpython.org/download.php#binaries"><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none">http://www.wxpython.org/download.php#binaries</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">5、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">安装顺序<SPAN lang=EN-US>1、2、3<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-list: Ignore">6、<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">点击系统菜单<SPAN lang=EN-US>wxPython2.6 Docs and Demos and Tools 的 Run the wxPython Deme，是不是已看到了可爱的python了，仔细欣赏吧！<BR><BR><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><B><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">稍微解释一下：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">python是一个解释器，为wxPython提供运行环境的，安装wxPython时会自动安装在python主目录的/lib/site-packages目录下。</SPAN><img src ="http://www.blogjava.net/patterns/aggbug/34365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-03-08 21:31 <a href="http://www.blogjava.net/patterns/archive/2006/03/08/wxPython_env.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个数据库软编码的问题</title><link>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html</link><dc:creator>野草</dc:creator><author>野草</author><pubDate>Wed, 08 Mar 2006 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html</guid><wfw:comment>http://www.blogjava.net/patterns/comments/34364.html</wfw:comment><comments>http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/patterns/comments/commentRss/34364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/patterns/services/trackbacks/34364.html</trackback:ping><description><![CDATA[<P><FONT size=2>在java中我们经常使用一下语法</FONT></P>
<P><FONT size=2>......<BR>String exSQL = " SELECT * FROM PK_TEST WHERE ID = ?";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>pstmt = conn.prepareStatement(exSQL);<BR>pstmt.setString(1,idValue);<BR>ResultSet rs = pstmt.executeQuery();<BR>......</FONT></P>
<P><FONT size=2>其中PK_TEST结构如下：</FONT></P>
<P><FONT size=2>CREATE TABLE PK_TEST ( <BR>&nbsp; <STRONG>ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CHAR (9)</STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT NULL, <BR>&nbsp; NAME&nbsp;&nbsp;&nbsp; VARCHAR2 (40), <BR>&nbsp; GENDER&nbsp; CHAR (1), <BR>&nbsp; CONSTRAINT PK_PK_TEST<BR>&nbsp; PRIMARY KEY ( ID ) ) ; <BR>注意：ID是CHAR (9)</FONT></P>
<P><FONT size=2>在表中插入测试数据：<BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test1', '1'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test2', '0'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 'test3', '1'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('123456789', 'test4', '0'); <BR>INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('987654321', 'test5', '1'); </FONT></P>
<P><FONT size=2>使用Toad执行:<BR>SELECT * FROM PK_TEST WHERE ID ='1';<BR>SELECT * FROM PK_TEST WHERE ID ='1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';</FONT></P>
<P><FONT size=2>都没有问题，但如果我将前面java语法pstmt.setString(1,idValue);中的idValue赋值为'1'，程序就是取不到值；<BR>继续测试：<BR>SELECT * FROM PK_TEST WHERE ID = :ID;<BR>赋值为'1'，没有结果；<BR>赋值为'1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '，结果出来了；</FONT></P>
<P><FONT size=2>可见无论在jdbc还是在数据库中软编码和硬编码有一定的区别。</FONT></P>
<P><FONT size=2>唉！整理数据库中的主键吧：ID = SUBSTR(TRIM(ID)||'000000000',0,9);<BR></FONT></P><img src ="http://www.blogjava.net/patterns/aggbug/34364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/patterns/" target="_blank">野草</a> 2006-03-08 21:28 <a href="http://www.blogjava.net/patterns/archive/2006/03/08/orcleCoding.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>