??xml version="1.0" encoding="utf-8" standalone="yes"?>国产日韩欧美一区二区三区综合,国产精品99蜜臀久久不卡二区 ,亚洲国产精品一区二区wwwhttp://www.aygfsteel.com/patterns/别hW我忒疯癫,我笑别h看不I?.. zh-cnSat, 17 May 2025 18:24:52 GMTSat, 17 May 2025 18:24:52 GMT60持箋层对象的hashCode和equalsҎ(gu)http://www.aygfsteel.com/patterns/archive/2007/01/13/po_hashCode_equals.html野草野草Sat, 13 Jan 2007 11:13:00 GMThttp://www.aygfsteel.com/patterns/archive/2007/01/13/po_hashCode_equals.htmlhttp://www.aygfsteel.com/patterns/comments/93630.htmlhttp://www.aygfsteel.com/patterns/archive/2007/01/13/po_hashCode_equals.html#Feedback1http://www.aygfsteel.com/patterns/comments/commentRss/93630.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/93630.html  

使用 hibernate 快一q了Q一直用得比较肤浅Q甚x有正式用过对象关系。近D|间想深入研究一下,以便在项目中推广Q减不必要的对象维护和~程。问题不期而遇Q在多对多关pMQ出C递规加蝲的现象,例如Q用户和角色的关p,一个用户可能有多个角色Q一个角色中包含多个用户。我是通过带有q接表的多对多关pd现的Q用户和角色对象中都l持了一?/span> Set 对象Q用以gq加载关pR但是,在我延迟加蝲用户拥有的角色时Q被加蝲的角色又加蝲它所包含的用P被加载的用户又加载所拥有的角Ԍq样递规加蝲下去Q由?/span> session 的关闭会(x)抛出异常DE序中止。开始百思不得其解,在仔l查看抛出的异常堆栈Ӟl于发现了问题所在。习(fn)惯!错误的习(fn)惯。我们所使用的持l层对象?x)承一个基c,该类“实现”了 hashCode ?/span> equals Ҏ(gu)Q代码如下:(x)

public boolean equals(Object o) {

    return EqualsBuilder.reflectionEquals(this, o);

}

public int hashCode() {

return HashCodeBuilder.reflectionHashCode(this);

}

hibernate 用h拥有的角色对象放q?/span> Set 中,实际 Set ?x)调?/span> hashCode ?/span> equals 来判断两个对象是否相{,q样问题来了, HashCodeBuilder.reflectionHashCode(this) Ҏ(gu)使用反射调用角色对象?/span> getUsers() Ҏ(gu)Q?/span> hibernate 又加载角色所包含的用P能没有问题吗Q而我们得反思一下持l层对象有没有通用?/span> hashCode ?/span> equals Ҏ(gu)?/span>

       参考《深入浅?/span> Hibernate 》对 hashCode ?/span> equals Ҏ(gu)的处理有两大U:(x)

1?span style="FONT: 7pt 'Times New Roman'">  不覆?/span>

问题Q实体对象的?/span> session 识别问题Q根本在?/span> hashCode 默认调用 System.identityHashCode() Ҏ(gu)?/span>

2?span style="FONT: 7pt 'Times New Roman'">  覆盖

Ø         使用对象 pk

问题Q新增对象时Q没?/span> pk Q那么所有的对象都相{了Q也是只能加入的一条?/span>

Ø         值比对(对实体对象的所有属性D行比对,可以使用 Commonclipse 自动生成Q?/span>

问题Q过于严根{?/font>

Ø         业务关键信息判定

是值比对的一个子集,只做业务关键属性的比对?/font>

个h觉得业务关键信息判定的方法比较合理,使用 Commonclipse 自动生成值比对,注意两点Q?/span>

1?span style="FONT: 7pt 'Times New Roman'">  L实体兌集合属性的比对Q不然又?x)出现我上述的“递规加蝲”现象?/span>

2?span style="FONT: 7pt 'Times New Roman'">  自动生成?/span> hashCode Ҏ(gu)L appendSuper(super.hashCode()) Q自动生成的 equals Ҏ(gu)L appendSuper(super.equals(object)) Q不然你的对象比较和加入 collection 都有问题的,《深入浅?/span> Hibernate 》书中没有强调?/span>



野草 2007-01-13 19:13 发表评论
]]>
如何把Hibernate2.1升到Hibernate3.0 http://www.aygfsteel.com/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html野草野草Sat, 30 Dec 2006 01:37:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.htmlhttp://www.aygfsteel.com/patterns/comments/90941.htmlhttp://www.aygfsteel.com/patterns/archive/2006/12/30/hibernate2_1_to_hibernate3.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/90941.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/90941.html 1.1 Hibernate API 变化
1.1.1 包名
1.1.2 org.hibernate.classic?
1.1.3 Hibernate所依赖的第三方软g?
1.1.4 异常模型
1.1.5 Session接口
1.1.6 createSQLQuery()
1.1.7 Lifecycle ?Validatable 接口
1.1.8 Interceptor接口
1.1.9 UserType和CompositeUserType接口
1.1.10 FetchModec?
1.1.11 PersistentEnumc?
1.1.12 对Blob 和Clob的支?
1.1.13 Hibernate中供扩展的API的变?
1.2 元数据的变化
1.2.1 索策?
1.2.2 对象标识W的映射
1.2.3 集合映射
1.2.4 DTD
1.3 查询语句的变?
1.3.1 indices()和elements()函数

管Hibernate 3.0 与Hibernate2.1的源代码是不兼容的,但是当Hibernate开发小l在设计Hibernate3.0Ӟ为简化升UHibernate版本作了周到的考虑。对于现有的ZHibernate2.1的Java目Q可以很方便的把它升U到Hibernate3.0?/font>

本文描述了Hibernate3.0版本的新变化QHibernate3.0版本的变化包括三个方面:(x)
Q?QAPI的变化,它将影响到JavaE序代码?br />Q?Q元数据Q它?yu)媄响到对?关系映射文g?br />Q?QHQL查询语句?/font>

值得注意的是Q?Hibernate3.0q不?x)完全取代Hibernate2.1。在同一个应用程序中Q允许Hibernate3.0和Hibernate2.1q存?/font>

1.1 Hibernate API 变化

1.1.1 包名

Hibernate3.0的包的根路径? “org.hibernate?Q而在Hibernate2.1中ؓ(f)“net.sf.hibernate”。这一命名变化使得Hibernate2.1和Hibernate3.0能够同时在同一个应用程序中q行?/font>

如果希望把已有的应用升到Hibernate3.0Q那么升U的W一步是把Java源程序中的所有“net.sf.hibernate”替换ؓ(f)“org.hibernate”?/font>

Hibernate2.1中的“net.sf.hibernate.expression”包被改名ؓ(f)“org.hibernate.criterion”。假如应用程序用了Criteria APIQ那么在升的过E中Q必LJava源程序中的所有“net.sf.hibernate.expression”替换ؓ(f)“org.hibernate.criterion”?/font>

如果应用使用了除Hibernate以外的其他外部YӞ而这个外部Y件又引用了Hibernate的接口,那么在升U时必须十分心。例如EHCache拥有自己的CacheProviderQ?net.sf.ehcache.hibernate.ProviderQ在q个cM引用了Hibernate2.1中的接口Q在升应用Ӟ可以采用以下办法之一来升UEHCache:

Q?Q手工修改net.sf.ehcache.hibernate.Providerc,使它引用Hibernate3.0中的接口?br />Q?Q等到EHCache软g本n升Z用Hibernate3.0后,使用新的EHCache软g?br />Q?Q用Hibernate3.0中内|的CacheProviderQorg.hibernate.cache.EhCacheProvider?/font>

1.1.2 org.hibernate.classic?/font>

Hibernate3.0把一些被废弃的接口都转移到org.hibernate.classic中?/font>

1.1.3 Hibernate所依赖的第三方软g?/font>

在Hibernate3.0的Y件包的lib目录下的README.txt文g中,描述了Hibernate3.0所依赖的第三方软g包的变化?/font>

1.1.4 异常模型

在Hibernate3.0中,HibernateException异常以及(qing)它的所有子c都l承了java.lang.RuntimeException。因此在~译Ӟ~译器不?x)再查HibernateException?/font>

1.1.5 Session接口

在Hibernate3.0中,原来Hibernate2.1的Session接口中的有些基本Ҏ(gu)也被废弃Q但Z化升U,q些Ҏ(gu)依然是可用的Q可以通过org.hibernate.classic.Session子接口来讉K它们Q例如:(x)


org.hibernate.classic.Session session=sessionFactory.openSession();
session.delete("delete from Customer ");


在Hibernate3.0中,org.hibernate.classic.Session接口l承了org.hibernate.Session接口Q在org.hibernate.classic.Session接口中包含了一pd被废弃的Ҏ(gu)Q如find()、interate(){。SessionFactory接口的openSession()Ҏ(gu)q回org.hibernate.classic.Sessioncd的实例。如果希望在E序中完全用Hibernate3.0Q可以采用以下方式创建Session实例Q?/font>

org.hibernate.Session session=sessionFactory.openSession();

如果是对已有的程序进行简单的升Qƈ且希望仍然调用Hibernate2.1中Session的一些接口,可以采用以下方式创徏Session实例Q?/font>

org.hibernate.classic.Session session=sessionFactory.openSession();

在Hibernate3.0中,Session接口中被废弃的方法包括:(x)
* 执行查询的方法:(x)find()、iterate()、filter()和delete(String hqlSelectQuery)
* saveOrUpdateCopy()

Hibernate3.0一律采用createQuery()Ҏ(gu)来执行所有的查询语句Q采用DELETE 查询语句来执行批量删除,采用merge()Ҏ(gu)来替?saveOrUpdateCopy()Ҏ(gu)?


提示Q在Hibernate2.1中,Session的delete()Ҏ(gu)有几U重载Ş式,其中参数为HQL查询语句的delete()Ҏ(gu)在Hibernate3.0中被废弃Q而参Cؓ(f)Ojbectcd的的delete()Ҏ(gu)依然被支持。delete(Object o)Ҏ(gu)用于删除参数指定的对象,该方法支持联删除?

Hibernate2.1没有Ҏ(gu)量更新和扚w删除提供很好的支持,参见<<_NHibernate>>一书的W?3章的13.1.1节(扚w更新和批量删除)Q而Hibernate3.0Ҏ(gu)量更新和扚w删除提供了支持,能够直接执行扚w更新或批量删除语句,无需把被更新或删除的对象先加载到内存中。以下是通过Hibernate3.0执行扚w更新的程序代码:(x)

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

String hqlUpdate = "update Customer set name = :newName where name = :oldName";
int updatedEntities = s.createQuery( hqlUpdate )
.setString( "newName", newName )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();

以下是通过Hibernate3.0执行扚w删除的程序代码:(x)

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

String hqlDelete = "delete Customer where name = :oldName";
int deletedEntities = s.createQuery( hqlDelete )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();

1.1.6 createSQLQuery()

在Hibernate3.0中,Session接口的createSQLQuery()Ҏ(gu)被废弃,被移到org.hibernate.classic.Session接口中。Hibernate3.0采用新的SQLQuery接口来完成相同的功能?/font>

1.1.7 Lifecycle ?Validatable 接口

Lifecycle和Validatable 接口被废弃,q且被移到org.hibernate.classic包中?/font>

1.1.8 Interceptor接口

在Interceptor 接口中加入了两个新的Ҏ(gu)?用户创徏的Interceptor实现cd升的过E中Q需要ؓ(f)q两个新Ҏ(gu)提供Ҏ(gu)体ؓ(f)I的实现。此外,instantiate()Ҏ(gu)的参C了修改,isUnsaved()Ҏ(gu)被改名ؓ(f)isTransient()?/font>

1.1.9 UserType和CompositeUserType接口

在UserType和CompositeUserType接口中都加入了一些新的方法,q两个接口被Udorg.hibernate.usertype包中Q用户定义的UserType和CompositeUserType实现cdd现这些新Ҏ(gu)?

Hibernate3.0提供了ParameterizedType接口Q用于更好的重用用户自定义的cd?

1.1.10 FetchModec?/font>

FetchMode.LAZY ?FetchMode.EAGER被废弃。取而代之的分别为FetchMode.SELECT 和FetchMode.JOIN?/font>

1.1.11 PersistentEnumc?/font>

PersistentEnum被废弃ƈ删除。已l存在的应用应该采用UserType来处理枚丄型?/font>

1.1.12 对Blob 和Clob的支?/font>

Hibernate对Blob和Clob实例q行了包装,使得那些拥有Blob或Clobcd的属性的cȝ实例可以被游R序列化或反序列化,以及(qing)传递到merge()Ҏ(gu)中?/font>

1.1.13 Hibernate中供扩展的API的变?/font>

org.hibernate.criterion?org.hibernate.mapping?org.hibernate.persister和org.hibernate.collection 包的l构和实现发生了重大的变化。多数基于Hibernate
2.1 的应用不依赖于这些包Q因此不?x)被影响。如果你的应用扩展了q些包中的类Q那么必非常小心的对受影响的程序代码进行升U?/font>

1.2 元数据的变化

1.2.1 索策?/font>

在Hibernate2.1中,lazy属性的默认gؓ(f)“false”,而在Hibernate3.0中,lazy属性的默认gؓ(f)“true”。在升映射文gӞ如果原来的映文件中的有兛_素,?lt;set>?lt;class>{没有显式设|lazy属性,那么必须把它们都昑ּ的设|ؓ(f)lazy=“true”。如果觉得这U升U方式很ȝQ可以采取另一单的升方式Q在<hibernate-mapping>元素中设|? default-lazy=“false”?

1.2.2 对象标识W的映射

unsaved-value属性是可选的Q在多数情况下,Hibernate3.0把unsaved-value="0" 作ؓ(f)默认倹{?/font>

在Hibernate3.0中,当用自然主键和游离对象Ӟ不再实现Interceptor.isUnsaved()Ҏ(gu)?如果没有讄q个Ҏ(gu)Q当Hibernate3.0无法区分对象的状态时Q会(x)查询数据库,来判断这个对象到底是临时对象Q还是游d象。不q,昑ּ的用Interceptor.isUnsaved()Ҏ(gu)?x)获得更好的性能Q因可以减少Hibernate直接讉K数据库的ơ数?/font>

1.2.3 集合映射

<index>元素在某些情况下?lt;list-index>?lt;map-key>元素替代。此外,Hibernate3.0?lt;map-key-many-to-many> 元素来替代原来的<key-many-to-many>.元素Q用<composite-map-key>元素来替代原来的<composite-index>元素?/font>

1.2.4 DTD

对象-关系映射文g中的DTD文Q由原来的:(x)
http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd
改ؓ(f)Q?br />
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd

1.3 查询语句的变?/font>

Hibernate3.0 采用新的ZANTLR的HQL/SQL查询译器,不过QHibernate2.1的查询翻译器也依然存在。在Hibernate的配|文件中Qhibernate.query.factory_class属性用来选择查询译器。例如:(x)
Q?Q选择Hibernate3.0的查询翻译器Q?br />hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
Q?Q选择Hibernate2.1的查询翻译器
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory


提示QANTLR是用UJava语言~写出来的一个编译工P它可生成Java语言或者是C++的词法和语法分析器,q可产生语法分析?wi)ƈ对该树(wi)进行遍历。ANTLR׃是纯Java的,因此可以安装在Q意^CQ但是需要JDK的支持?

Hibernate开发小l尽力保证Hibernate3.0的查询翻译器能够支持Hibernate2.1的所有查询语句。不q,对于许多已经存在的应用,在升U过E中Q也不妨仍然使用Hibernate2.1的查询翻译器?br />值得注意的是Q?Hibernate3.0的查询翻译器存在一个BugQ不支持某些theta-styleq结查询方言Q如Oracle8i的OracleDialect方言、Sybase11Dialect。解册一问题的办法有两种Q(1Q改Z用支持ANSI-styleq结查询的方aQ如 Oracle9Dialect,Q?Q如果升U的时候遇到这一问题Q那么还是改Z用Hibernate2.1的查询翻译器?/font>

1.3.1 indices()和elements()函数

在HQL的select子句中废弃了indices()和elements()函数Q因两个函数的语法很让用戯解,可以用显式的q接查询语句来替?select elements(...) 。而在HQL的where子句中,仍然可以使用elements()函数?/font>

 



野草 2006-12-30 09:37 发表评论
]]>
通用套打web端解x?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/12/16/cert_print_20061216.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/88240.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/12/16/cert_print_20061216.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/88240.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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'">cM于证件打印的套打模式Q在</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'">面解决Ҏ(gu)中比较棘手。这D|间忙里偷Ԍ好好研习(fn)?/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'">的相x术写了一个以此抛砖引玉?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'">、可以调整显C数据的位置、字体和大小Qcertprint.cssQ;</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'">、可以设|背景图片和囄大小Q?/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'">、可以获得数据调整后的位|(方便数据库保存,无需每次都设|)Q?/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'">Q:(x)</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'">U向、打印页边距Q?/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'">、可以跨览器用(除打印设|)Q?/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'">Q?/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'">Q?/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'">Q?/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'">Q?/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'">Q?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'">使用Ҏ(gu)</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'">在你的项目中建立一个类g</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'">Ҏ(gu)讄打印属性和需要打印数据,在打印数据调整完毕可以调?/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'">获得调整后的数据位置Q可以保存到数据库?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">Q?/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.aygfsteel.com/patterns/aggbug/88240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-12-16 21:29 <a href="http://www.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/11/28/velocity_template_path_another_method.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/84041.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/11/28/velocity_template_path_another_method.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/84041.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/84041.html</trackback:ping><description><![CDATA[ <font size="2">研究hibernatesynchronizer的源码,看到他将velocity模板和编译的cMh包在jar包中Q在获得模板时?br />Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")获得,然后再将转变成字W串<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有这L(fng)Ҏ(gu)Q挺无知的,Z路径焦头烂额Q终于得解了。ȝ一下技巧:(x)<br />1、Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")相对路径获得;<br />2、Velocity.evaluate(...)Ҏ(gu)使用Q?/font> <img src ="http://www.aygfsteel.com/patterns/aggbug/84041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-11-28 14:21 <a href="http://www.aygfsteel.com/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.3http://www.aygfsteel.com/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html野草野草Fri, 03 Nov 2006 03:00:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/11/03/integrate_fckeditor_jsp.htmlhttp://www.aygfsteel.com/patterns/comments/77356.htmlhttp://www.aygfsteel.com/patterns/archive/2006/11/03/integrate_fckeditor_jsp.html#Feedback2http://www.aygfsteel.com/patterns/comments/commentRss/77356.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/77356.html 下蝲

?span lang="EN-US">FCKeditor的官方站?a >http://www.fckeditor.net/download上下载FCKeditor 2.3.2和FCKeditor.JavaQ其中FCKeditor 2.3.2是源码,FCKeditor.Java是在jsp中用的例程?o:p>

 

瘦n

?span lang="EN-US">FCKeditor 2.3.2解压到FCKeditor文g夹,然后删除如下文g或目录:(x)

1?_samplesQ?_testcasesQ?o:p>

2、删?_documentation.html,_whatsnew.html,fckeditor.afp,fckeditor.asp,fckeditor.cfc,fckeditor.cfm,
fckeditor.lasso,fckeditor.php,fckeditor.pl,fckeditor.py
只剩下fckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml,htaccess.txt,license.txtQ?o:p>

3?editor/_sourceQ?o:p>

4?editor/filemanager/browser/default/connectorsQ?o:p>

5?editor/filemanager/uploadQ?o:p>

6、语a?editor/lang中只留下en.js、zh-cn.jsQ?o:p>

哈哈Q一下子?span lang="EN-US">2.5M瘦到832KQ爽呀Q还可以在皮肤包?editor/skins动动脑筋Q比如只留一个sliverQ这个好配色?o:p>

配置

?span lang="EN-US">FCKeditor的jsp中用的例程和FCKeditor源码l合hQ解压FCKeditor.JavaQ将解压文g夹中web目录下的所有文件拷贝到FCKeditor目录中,q样在FCKeditor目录多了两个目录Q?o:p>

├─_samples

?span lang="EN-US">  ?span style="mso-spacerun: yes">  index.jsp

?span lang="EN-US">  ?span style="mso-spacerun: yes">  sample.css

?span lang="EN-US">  ?span style="mso-spacerun: yes">  sampleslist.jsp

?span lang="EN-US">  ?span style="mso-spacerun: yes"> 

?span lang="EN-US">  └─jsp

?span lang="EN-US">          sample01.jsp

?span lang="EN-US">          sample02.jsp

?span lang="EN-US">          sample03.jsp

?span lang="EN-US">          sample04.jsp

?span lang="EN-US">          sample05.jsp

?span lang="EN-US">          sample06.config.js

?span lang="EN-US">          sample06.jsp

?span lang="EN-US">          sample07.jsp

?span lang="EN-US">          sampleposteddata.jsp

?span lang="EN-US">         

└─WEB-INF

    ?span style="mso-spacerun: yes">  web.xml

    ?span style="mso-spacerun: yes"> 

    └─lib

            FCKeditor-2.3.jar

            commons-fileupload.jar

看一?span lang="EN-US">web.xml文gQ里面增加了文g览和文件上传得servlet?o:p>

l         修改文gFCKeditor/fckconfig.js

1?span style="FONT: 7pt 'Times New Roman'">  修改属?span lang="EN-US">

中文Q?span lang="EN-US">FCKConfig.DefaultLanguage     = 'zh-cn' ;

皮肤Q?span lang="EN-US">FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;

2?span style="FONT: 7pt 'Times New Roman'">  使用servlet做文件浏览和上传

参?span lang="EN-US">http://wiki.fckeditor.net/Developer%27s_Guide/Integration/Java

//browser

FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;

FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

FCKConfig.FlashBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;

 

//upload

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;

FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;

FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;

l         修改web.xml增加FCKeditor的taglib

?span lang="EN-US">FCKeditor.Java解压目录/src目录下拷贝FCKeditor.tld文g到WEB-INF目录下,在web.xml文g中增加:(x)

<taglib>

    <taglib-uri>/WEB-INF/FCKeditor.tld</taglib-uri>

    <taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>

</taglib>

 

使用

?/span> jsp 面中作如下调用Q具体如何用可以看 FCKeditor.tld定义 Q:(x)

...

 

<%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %>

 

...

 

<FCK:editor id="EditorDefault" basePath="/FCKeditor/">

This is FCKeditor demo!

</FCK:editor>

 

...

q行例程

我们修改了半天的整?/span> FCKeditor目录拯到tomcat5.0.28Q或其他web服务器)的webapps目录下,启动tomcat讉Khttp://localhost:8080/FCKeditor/_samples/ 试用一下FCKeditor 2.3.2的强大功能,有了demo在项目中如何使用Q你自己琢磨吧!

 

例程下蝲Q?/span> FCKeditor



野草 2006-11-03 11:00 发表评论
]]>
struts中不让页面蟩转的方?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/10/20/struts_deny_redirect.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/76426.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/10/20/struts_deny_redirect.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/76426.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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">做项目时Q通常在信息录入页面点?/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">按钮后会(x)跌{C个“保存成功!”的提示面Q小的提示?x)带来一些问题:(x)</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">用户多增加一步操作(特别是在信息修改面Q;</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">带来面h的重复提交的问题Q?/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">我们改变一下思\?x)带来意想不到的效果Q同时也规避了以上问题?/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">Ҏ(gu)一</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">修改你的信息录入面Q加入如下脚?/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"><iframe name="tagFrame" style="display:none" frameborder="0"></iframe></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"><script language="JavaScript"></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">// </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">//--></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"></script></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"><%@ page contentType="text/html; charset=GBK" %></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"><script language="javascript"></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">保存成功Q?/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">q里是等待你点击</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">的确定按钮后跌{Q神奇的</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"></script></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">收获q不?/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">Ҏ(gu)?/span> </b> <span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"> <br />让actionq回javascript完成提示和蟩转:(x)<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">操作成功Q?/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("<SCRIPT TYPE='text/javascript'>" + msg + "</SCRIPT>");<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.aygfsteel.com/patterns/aggbug/76426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-10-20 17:43 <a href="http://www.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/10/18/hsqldb_quick_start.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/75989.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/10/18/hsqldb_quick_start.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/75989.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/75989.html</trackback:ping><description><![CDATA[     摘要: 数据库环境配|和使用 首先从http://www.hsqldb.org/下蝲一个hsqldb的稳定版本,解压后可以浏览解压目录下的index.htmlQ它描述了各个目录所包含内容Q在docD里有一个重要的链接User Guide: index.htmlQ有I好好研I吧Q? ...  <a href='http://www.aygfsteel.com/patterns/archive/2006/10/18/hsqldb_quick_start.html'>阅读全文</a><img src ="http://www.aygfsteel.com/patterns/aggbug/75989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-10-18 17:24 <a href="http://www.aygfsteel.com/patterns/archive/2006/10/18/hsqldb_quick_start.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q{Q正则表辑ּ的入门知?http://www.aygfsteel.com/patterns/archive/2006/06/05/regular_expression.html野草野草Mon, 05 Jun 2006 01:15:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/06/05/regular_expression.htmlhttp://www.aygfsteel.com/patterns/comments/50416.htmlhttp://www.aygfsteel.com/patterns/archive/2006/06/05/regular_expression.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/50416.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/50416.html 摘自Q?/font> http://blog.csdn.net/zbzgigi/archive/2006/05/30/763795.aspx

1、?”ؓ(f)通配W,表示M一个字W,例如Q“a.c”可以匹配“anc”、“abc”、“acc”;
2、“[]”,在[]内可以指定要求匹配的字符Q例如:(x)“a[nbc]c”可以匹配“anc”、“abc”、“acc”;但不可以匚w“ancc?a到z可以写成[a-z],0?可以写成[0-9];

3、数量限定符P表示匚wơ数Q或者叫做长度)的符P(x)

包括Q?”—?ơ或者多?br />      ?”—?ơ或者多?br />      ?”—?ơ或??br />      “{n}”——匹配nơ,n为整?br />      “{n,m}”——匹配从n到m之间的某个数的次敎ͼn和m都是整数Q?br />      “{n,}”——匹配n到无Ih之间Lơ数Q?br />      “{,m}”——匹?到m之间Lơ数Q?br />他们攑ֈ匚w格式的后面:(x)
例如Q?br />?sh)话L(fng)Q?24Q?4820482Q?2484820482(假设前面3或?位,后面7或?位,q且中间的减号可有可?

都是W合规定的,那么可以用如下格式来匚wQ[0-9]{3,4} \-? [0-9]{7,8}Q?br />注意Q“\”ؓ(f)转义字符Q因为?”在正则表达式用有代表一个范围的意义Q例如:(x)前面所说的[0-9]Q?/font>

所以它需要{义字W“\”进行{义才可用;
4、“^”ؓ(f)否符P表示不想匚w的符P例如Q[^z][a-z]+可以匚w所有除“z”开头的以外的所有字

W串Q长度大?Q因为?”表C大于等?的次敎ͼ从第二位开始都是小写英文字W)Q?br />如果^攑ֈ[]的外边则表示以[]开头的字符Ԍ^[az][a-z]+表示a或者z开头的长度大于{于2的英文字W?/font>

Ԍ
5、“|”或q算W,例如Qa[n|bc|cb]c可以匚w“abcc?“anc?“acbc”;
6、?”以它前面的字符l尾的;例如Qab+$可以被“abb”,“ab”匹配;
7、一些简单表C方法:(x)
\d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],是I格字符包括tab

Q空格等{?\S表示[^\t\n\r\f]Q就是非I格字符;
8、常用的匚wQ?br />匚w中文字符Q?“[\u4e00-\u9fa5]”;
匚w双字节字W?包括汉字在内)Q“[^\x00-\xff]”;
匚wI的正则表辑ּQ“\n[\s| ]*\r”;
匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/”;
匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$)”;
匚w非负整数Q正整数 + 0Q:(x)“^\d+$”;  
匚w正整敎ͼ(x)“^[0-9]*[1-9][0-9]*$”;
匚w非正整数Q负整数 + 0Q:(x)“^((-\d+)|(0+))$”;
匚w负整敎ͼ(x)“^-[0-9]*[1-9][0-9]*$”;
匚w整数Q“^-?\d+$”;
匚w非负点敎ͼ正QҎ(gu) + 0Q:(x)“^\d+(\.\d+)?$?br />匚w正QҎ(gu)Q“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*

))$”;
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匚w非正点敎ͼ负QҎ(gu) + 0Q?
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匚w

负QҎ(gu)
匚w点敎ͼ(x)“^(-?\d+)(\.\d+)?$”;
匚w由数字?6个英文字母或者下划线l成的字W串Q“^\w+$”;
匚wemail地址Q“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
匚wurlQ“^[a-zA-z]+://匚w(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$?br />

下面是正则表辑ּ中的一些常用模式?/font>

/pattern/  l果 
. 匚w除换行符以外的所有字W?
x? 匚w 0 ơ或一?x 字符?
x* 匚w 0 ơ或多次 x 字符Ԍ但匹配可能的最次?
x+ 匚w 1 ơ或多次 x 字符Ԍ但匹配可能的最次?
.* 匚w 0 ơ或一ơ的M字符
.+ 匚w 1 ơ或多次的Q何字W?
{m} 匚w刚好?m ?的指定字W串
{m,n} 匚w?m?以上 n?以下 的指定字W串
{m,} 匚w m?以上 的指定字W串
[] 匚wW合 [] 内的字符
[^] 匚w不符?[] 内的字符
[0-9] 匚w所有数字字W?
[a-z] 匚w所有小写字母字W?
[^0-9] 匚w所有非数字字符
[^a-z] 匚w所有非写字母字符
^ 匚w字符开头的字符
$ 匚w字符l尾的字W?
\d 匚w一个数字的字符Q和 [0-9] 语法一?
\d+ 匚w多个数字字符Ԍ?[0-9]+ 语法一?
\D 非数字,其他?\d
\D+ 非数字,其他?\d+
\w 英文字母或数字的字符Ԍ?[a-zA-Z0-9] 语法一?
\w+ ?[a-zA-Z0-9]+ 语法一?
\W 非英文字母或数字的字W串Q和 [^a-zA-Z0-9] 语法一?
\W+ ?[^a-zA-Z0-9]+ 语法一?
\s I格Q和 [\n\t\r\f] 语法一?
\s+ ?[\n\t\r\f]+ 一?
\S 非空|?[^\n\t\r\f] 语法一?
\S+ ?[^\n\t\r\f]+ 语法一?
\b 匚w以英文字?数字界的字符?
\B 匚w不以英文字母,数gؓ(f)边界的字W串
a|b|c 匚wW合a字符 或是b字符 或是c字符 的字W串
abc 匚w含有 abc 的字W串
(pattern) () q个W号?x)记住所扑֯到的字符Ԍ是一个很实用的语法。第一?() 内所扑ֈ的字W串
变成 $1 q个变量或是 \1 变量Q第二个 () 内所扑ֈ的字W串变成 $2 q个变量或是 \2 变量Q以?br />cL下去。?
/pattern/i i q个参数表示忽略英文大小写,也就是在匚w字符串的时候,不考虑英文的大写问题?
\ 如果要在 pattern 模式中找M个特D字W,?"*"Q则要在q个字符前加?\ W号Q这h?x)让?gu)
字符失效
3、正则表辑ּ的八大原?br />  如果?Unix 中曾l用过 sed、awk、grep q些命o(h)的话Q相信对于正则表辑ּ(Regular Expression)
不会(x)感到陌生。下面给大家介绍几条正则表达式用过E中?8 大原则?

正则表达式在对付数据的战斗中可Ş成庞大的联盟——这常常是一场战争。我们要C下面八条原则Q?/font>

· 原则1Q正则表辑ּ有三U不同Ş?匚w(m/ /)Q替?s/ / /eg)和{?tr/ / /))?/font>

· 原则2Q正则表辑ּ仅对标量q行匚w( $scalar =~ m/a/; 可以工作; @array =~ m/a/ 把@array作ؓ(f)标量
对待Q因此可能不?x)成??/font>

· 原则3Q正则表辑ּ匚w一个给定模式的最早的可能匚w。缺省时Q仅匚w或替换正则表辑ּ
一? $a = 'string string2'; $a =~ s/string/ /; D $a = 'string 2')?/font>

· 原则4Q正则表辑ּ能够处理双引h能处理的L和全部字W? $a =~ m/$varb/ 在匹配前把varb扩展?br />变量Q如?$varb = 'a' $a = 'as'Q?a =~ s/$varb/ /; {h(hun)?$a =~ s/a/ /; Q执行结果 $a = " s" )?/font>

· 原则5Q正则表辑ּ在求DE中产生两种情况Q结果状态和反向引用Q?$a=~ m/pattern/ 表示 $a 中是否有
子串 pattern 出现Q?a =~ s/(word1)(word2)/$2$1/ 则“调换”这两个单词?/font>

· 原则6Q正则表辑ּ的核心能力在于通配W和多重匚wq算W以?qing)它们如何操作?a =~ m/\w+/ 匚w一个或多个
单词字符Q?a =~ m/\d/" 匚w零个或多个数字?/font>

· 原则7Q如果欲匚w不止一个字W集合,Perl使用 "|" 来增加灵zL。如果输?m/(cat|dog)/ 则相当于“匹?br />字符?cat 或?dog?/font>

· 原则8QPerl?(?..) 语法l正则表辑ּ提供扩展功能?/font>



野草 2006-06-05 09:15 发表评论
]]>
壁?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/06/02/little_gecho.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/49993.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/06/02/little_gecho.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/49993.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/49993.html</trackback:ping><description><![CDATA[ <p>       <font size="2">前些日子Q偶然发现冰q后面墙上着一只小壁虎Q体长大?个厘cI昄是个q崽。我想Q它是怎么爬到我家里来的,它ؓ(f)什么会(x)爬到我家里来Q以后它吃什么。自׃觉得挺好W的Qؓ(f)什么会(x)有这些想法。仔l搜索脑h处,因ؓ(f)在它w上有好多美好的童年回忆。自嘲一下,许是“六一”快C吧!</font></p> <p> <font size="2">        我觉得它应该属于更广阔的屋外I间Q而不属于q狭的屋内Q那儿有它的世界Q有它的_ֽQ更有它的食物。我生怕它饿死了,有好几次x住它Q把它放到窗外,可是一眨眼Q它?yu)p没了。我q特意的到处LQ可l究没找到。只得每天上班前l躲在角落旮旯里的它打声招呼Q祝它别被饿死Q可爱奇特的生c?/font> </p> <p> <font size="2">        旉一长这事就淡忘了,今天早上hQ外面的天气好象好v来了Q拉开H帘Q个懒腎ͼ摘下眼镜Q搂搂睡意朦胧的眼睛。噫Q地上哪来的黑线团,戴上眼镜Q一看,呀Q这不是壁虎吗Q尾巴断了,在那,一只爪子在抖动着Q皮肤也失去了光泽。唉Q我惛_能小壁虎本来爬上了窗帘,我一拉窗帘它?yu)掉了下来,正好被我t在了脚下。不知道它还能不能活了,我赶紧把它拣hQ放到窗外的q中,那儿有点湿气Q有一些小虫子。我看着它,它趴在那一动不动,我想大概是死了。等到洗漱完再来看,噫!不见了,是不是爬C。心中暗暗窃喜,要是壁虎还?gu)zȝQ这真是太好了?/font> </p> <p> <font size="2">        一只小的壁虎Q走q了本不属于它的世界Q饱l折,我想它应该有更强的生命力。也许这是它重生的切机Q虽Ӟq带着沉痛的伤Q但毕竟获得了新生?/font> </p> <img src ="http://www.aygfsteel.com/patterns/aggbug/49993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-06-02 17:08 <a href="http://www.aygfsteel.com/patterns/archive/2006/06/02/little_gecho.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初探mysql-5.0.20http://www.aygfsteel.com/patterns/archive/2006/05/27/mysql_summary.html野草野草Sat, 27 May 2006 07:20:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/05/27/mysql_summary.htmlhttp://www.aygfsteel.com/patterns/comments/48485.htmlhttp://www.aygfsteel.com/patterns/archive/2006/05/27/mysql_summary.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/48485.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/48485.html 1、mysql-4.0.22不支持嵌套查询,mysql-5.0.20可以?/font>

2、ؕ码问?br />web应用的数据库q接Q?br />jdbc.driverClassName=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://localhost/cs?useUnicode=true&amp;characterEncoding=gbk
jdbc.userName=cs
jdbc.password=cs

mysql-5.0.20的my.ini文gQ?br />default-character-set=gbk
有两处,一处指数据存取q程中的~码Q一处指创徏schema或table的默认编码。所以紧记设完编码后再徏schema或tableQ否则还是ؕ码?/font>

3、用MySQL Administrator 1.1建立schema、table或user{,使用MySQL Query Browser 1.1查询l果Q用MySQL Workbench建模?/font>

4、mysql基本命o(h)
启动Q在安装时安装windows的服务,从服务启动和停止Q?br />dQmysql -hlocalhost -uroot -padmin
其他Qshow databases;
             use XXDB;
             show tables;

5、数据库备䆾和恢?br />备䆾Q?strong>mysqldump -hlocalhost -uroot -padmin database_name>d:/database_name.data
恢复Q首先创建数据库database_nameQ然后命?mysql-hlocalhost -uroot -padmin database_name<d:/database_name.data



野草 2006-05-27 15:20 发表评论
]]>
prototype.js + util.js使ajax更加单透明http://www.aygfsteel.com/patterns/archive/2006/05/14/prototype_util_ajax.html野草野草Sun, 14 May 2006 13:29:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/05/14/prototype_util_ajax.htmlhttp://www.aygfsteel.com/patterns/comments/46130.htmlhttp://www.aygfsteel.com/patterns/archive/2006/05/14/prototype_util_ajax.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/46130.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/46130.html q一D|_(d)学习(fn)ajax的应用,接触了dwr框架和AjaxTags。M觉得dwr使用配置比较复杂Q不太透明Q人有一U不太放心的感觉Q且对struts的支持不够好。AjaxTags的用具有页面元素的针对性,不够自由。故此我惛_prototype.js和dwr的util.jsl合hQ我们的ajax应用更加透明和简单?br />
 q样l合的优势?

1?span style="FONT: 7pt 'Times New Roman'">  只是增加了两?span lang="EN-US">js文g和处理你面的jsQ这些东西对你是透明的,很简单?o:p>

2?span style="FONT: 7pt 'Times New Roman'">  不媄响服务器端的架构Q不你是只使用strutsQ还是struts + spring + hibernate?o:p>


服务端向客户端提供了什么?

1?span style="FONT: 7pt 'Times New Roman'">  单对?span lang="EN-US">

String、int、Date{类型的单一数据Q返回给客户端显C都是字W串?o:p>

2?span style="FONT: 7pt 'Times New Roman'">  复杂对象

用户自定?span lang="EN-US">POJO对象?o:p>

3?span style="FONT: 7pt 'Times New Roman'">  列表对象

List对象Q里面放的是同一POJO对象?o:p>

客户端可以解析什么?

1?span style="FONT: 7pt 'Times New Roman'">  单对象没有问题?span lang="EN-US">

2?span style="FONT: 7pt 'Times New Roman'">  复杂对象可以使用cM?span lang="EN-US">map对象来代替,例如Q?o:p>

public class Person {

    private int id;

 

    private String name;

 

    private String gender;

 

    private int age;

 

    public void setId(int id) {

        this.id = id;

    }

 

    public String getName() {

        return name;

}

。。?span lang="EN-US">

}

可用如下Ş式来表示Q?span lang="EN-US">

var person = { id:'001', name:'test1', gender:'?, age:'15' };

3?span style="FONT: 7pt 'Times New Roman'">  列表对象Q可以?span lang="EN-US">array对象中放|map对象表示Q例如:(x)

var people =[{ id:'001', name:'test1', gender:'?, age:'15' },{ id:'002', name:'test2', gender:'?, age:'13' } ]

客户端怎么解析Q?span lang="EN-US">

q时可以发?span lang="EN-US">util.js的功能了Q在dwr|站上可以详见?o:p>

ajax在哪里?

ajax的应用在prototype.js中,它针对ajax提供了好多方法,详细可见prototype开发笔?/a>?o:p>

struts怎么q回Q?o:p>

我想代码你一看就明白Q?span lang="EN-US">

public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

    try {

        String text = null;

 

        // 用户d?o:p>

        String logonName = request.getParameter("logonName");

       

        logonName = StringUtil.convertEncoding(logonName,"ISO8859_1");

 

        // 到数据库中进行检?..

        System.out.println("logonName:" + logonName);

 

        // 该用户已l存?o:p>

        text = logonName;

 

        // 结果返回页?o:p>

        response.setContentType("text/xml; charset=UTF-8");

        response.setHeader("Cache-Control", "no-cache");

        PrintWriter pw = response.getWriter();

        pw.write(text);

        pw.close();

       

    } catch (Exception e) {

        e.printStackTrace();

    }

       

    //注意

    return null;

}

到底怎么用?

1?span style="FONT: 7pt 'Times New Roman'">  客户端?span lang="EN-US">get方式发送数据,如果要发送的是form数据可以使用prototype.js中的Ҏ(gu)生成参数Q例如:(x)var pars = Form.serialize(document.all.personForm)。代码片断如下:(x)

/*

增加人员

*/

function writePerson() {

    var url = 'ajax.do?method=showTableRows';

  var pars = Form.serialize(document.all.personForm);

 

     new Ajax.Request(

      url,

      {method: 'get', parameters: pars, onComplete: personResult}

  );

}

 

function personResult(result){

    fillTable(eval(result.responseText));

}

2?span style="FONT: 7pt 'Times New Roman'">  服务器端?span lang="EN-US">action接受数据可以使用ActionFormQActionServlet?x)自动封装数据字串的Q,也可以用:(x)String personId = request.getParameter("personId")q样的方法单独得到数据?o:p>

3?span style="FONT: 7pt 'Times New Roman'">  在服务器端?span lang="EN-US">AjaxUtilQ我写的一个工L(fng)Q,结果{变成map或arrayQ再q回l客L(fng)?o:p>

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.util.List;

 

import org.apache.commons.beanutils.BeanUtils;

 

public class AjaxUtil {

    /**

     * listl构转变成js的arrayl构Q要求list中包含的是model

     * 例如Q[{id:'1001',name:'test1'},{id:'1002',name:'test2'},{id:'1003',name:'test3'}]

     *

     * @param list

     *            Listl构

     * @return js的arrayl构

     *

     * @throws IllegalAccessException

     * @throws InvocationTargetException

     * @throws NoSuchMethodException

     */

    public static String list2StrArray(List list) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {

        StringBuffer strMap = new StringBuffer();

 

        strMap.append("[");

        int listSize = list.size();

        for (int i = 0; i < listSize; i++) {

            Object obj = list.get(i);

 

            if (i != listSize - 1)

                strMap.append(model2StrMap(obj)).append(",");

            else

                strMap.append(model2StrMap(obj));

        }

        strMap.append("]");

 

        return strMap.toString();

    }

 

    /**

     * model的结构{变成js的mapl构

     * 例如Q{id:'1001',name:'test'}

     *

     * @param obj

     *            M对象

     * @return js的mapl构

     *

     * @throws IllegalAccessException

     * @throws InvocationTargetException

     * @throws NoSuchMethodException

     */

    public static String model2StrMap(Object obj) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {

        StringBuffer strMap = new StringBuffer();

 

        // 获得model的属性字D?o:p>

        Class clazz = obj.getClass();

        Field[] fields = clazz.getDeclaredFields();

 

        // 取出mode的属性?o:p>

        strMap.append("{");

        for (int i = 0; i < fields.length; i++) {

            String fieldName = fields[i].getName();

            String fieldValue = BeanUtils.getProperty(obj, fieldName);

 

            if (i != fields.length - 1)

                strMap.append(fieldName + ":'" + fieldValue + "',");

            else

                strMap.append(fieldName + ":'" + fieldValue + "'");

        }

        strMap.append("}");

 

        return strMap.toString();

    }

 

}


4?span style="FONT: 7pt 'Times New Roman'">  客户端得?span lang="EN-US">map或array后,使用dwr的util.js提供的方法向面元素填充数据?o:p>

例程下蝲

simpleAjaxDemo



野草 2006-05-14 21:29 发表评论
]]>
单灵zȝ权限?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/05/14/authority_tree.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/46047.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/05/14/authority_tree.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/46047.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/46047.html</trackback:ping><description><![CDATA[     摘要: 最q写了一|限树(wi)Q因为在写之前到|上 google 了一下,好像没有比较完整且简单的做法Q故结果与各位׃n一下? 我是? dree 作了一些修改:(x) 1? ...  <a href='http://www.aygfsteel.com/patterns/archive/2006/05/14/authority_tree.html'>阅读全文</a><img src ="http://www.aygfsteel.com/patterns/aggbug/46047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-05-14 09:11 <a href="http://www.aygfsteel.com/patterns/archive/2006/05/14/authority_tree.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库查询的优化http://www.aygfsteel.com/patterns/archive/2006/05/09/index_sql_optimize.html野草野草Tue, 09 May 2006 09:38:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/05/09/index_sql_optimize.htmlhttp://www.aygfsteel.com/patterns/comments/45250.htmlhttp://www.aygfsteel.com/patterns/archive/2006/05/09/index_sql_optimize.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/45250.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/45250.html阅读全文

野草 2006-05-09 17:38 发表评论
]]>
axis使用W记http://www.aygfsteel.com/patterns/archive/2006/05/06/axis_record0.html野草野草Sat, 06 May 2006 12:31:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/05/06/axis_record0.htmlhttp://www.aygfsteel.com/patterns/comments/44803.htmlhttp://www.aygfsteel.com/patterns/archive/2006/05/06/axis_record0.html#Feedback3http://www.aygfsteel.com/patterns/comments/commentRss/44803.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/44803.html阅读全文

野草 2006-05-06 20:31 发表评论
]]>
Q{Qoraclepȝ表查?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/04/11/oracle_systable_query.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/40402.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/04/11/oracle_systable_query.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/40402.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/40402.html</trackback:ping><description><![CDATA[ <p> <font size="2">摘自Q?/font> <a > <font size="2">http://www.gbunix.com/htmldata/2004_06/2/5/article_53_1.html</font> </a> <br /> <br /> <font size="2">数据字典dictL属于Oracle用户sys的?<br />  1、用P(x) <br />   select username from dba_users; <br />  改口?<br />   alter user spgroup identified by spgtest; <br />  2、表I间Q?<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;//I闲表空?</font> </p> <p> <font size="2">   select * from dba_data_files <br />    where tablespace_name='RBS';//表空间对应的数据文g </font> </p> <p> <font size="2">   select * from dba_segments <br />    where tablespace_name='INDEXS'; <br />  3、数据库对象Q?<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、表Q?<br />   select * from dba_tables; <br />   analyze my_table compute statistics;->dba_tables??<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'查看回滚D늚I间分配信息 <br />   列信息:(x)<br />             <1>.<br />    select distinct table_name <br />    from user_tab_columns <br />    where column_name='SO_TYPE_ID'; <br />            <2>.<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、烦引:(x)  <br />   select * from dba_indexes;//索引Q包括主键烦?<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、序列:(x) <br />   select * from dba_sequences; <br />  7、视图:(x) <br />   select * from dba_views; <br />   select * from all_views; <br />  text 可用于查询视囄成的脚本 <br />  8、聚:(x) <br />   select * from dba_clusters; <br />  9、快照:(x) <br />   select * from dba_snapshots; <br />  快照、分区应存在相应的表I间?<br />  10、同义词Q?<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、数据库链:(x) <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、触发器Q?<br />   select * from dba_trigers; <br />  存储q程Q函Cdba_objects查找?<br />  其文本:(x)select text from user_source where name='BOOK_SP_EXAMPLE'; <br />  建立出错Qselect * from user_errors; <br />  oracleL存储过E,函数{Y件放在SYSTEM表空间?<br />  13、约束:(x) <br />  Q?Q约束是和表兌的,可在create table或alter table table_name add/drop/modify来徏立、修攏V删除约束?<br />  可以临时止U束Q如Q?<br />   alter table book_example <br />   disable constraint book_example_1; <br />   alter table book_example <br />   enable constraint book_example_1; <br />  Q?Q主键和外键被称U束Q而not null和unique之类的约束被UCؓ(f)列约束。通常主键和外键作ؓ(f)单独的命名约束放在字D列表下面,而列U束可放在列定义的同一行,q样更具有可L?<br />  Q?Q列U束可从表定义看出,即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 />  Q?Q定义约束可以无名(pȝ自动生成U束名)和自己定义约束名Q特别是主键、外键) <br />  如:(x)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、回滚段Q?<br />  在所有的修改l果存入盘前,回滚D中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应定其大(DML语句才可回滚Qcreate,drop,truncate{DDL不能回滚Q?<br />  回滚D|?q发事务/4Q但不能过50Q每个回滚D大够处理一个完整的事务Q?<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监测回滚D늚大小和动态增ѝ?<br />  回滚D늚区间信息 <br />   select * from dba_extents <br />   where segment_type='ROLLBACK' and segment_name='RB1'; <br />  回滚D늚D信?其中bytes昄目前回滚D늚字节?<br />   select * from dba_segments <br />    where segment_type='ROLLBACK' and segment_name='RB1'; <br />  Z物指定回归段 <br />   set transaction use rollback segment rbs_cvt <br />  针对bytes可以使用回滚D回~?<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 />  回滚D늚当前状态信息:(x) <br />   select * from dba_rollback_segs <br />    where segment_name='RB1'; <br />  比多回滚D늊态statusQ回滚段所属实例instance_num <br />  查优化值o(j)ptimal <br />   select n.name,s.optsize <br />    from v$rollname n,v$rollstat s <br />     where n.usn=s.usn; <br />  回滚D中的数?<br />   set transaction use rollback segment rb1;/*回滚D名*/ <br />   select n.name,s.writes <br />    from v$rollname n,v$rollstat s <br />     where n.usn=s.usn; <br />  当事务处理完毕,再次查询$rollstatQ比较writes(回滚D|目字节数)差|可确定事务的大小?<br />  查询回滚D中的事?<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 />  查询正在q行的作?<br />   select * from dba_jobs_running; <br />  使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间?0U钟 <br />    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间?1分钟使用包exec dbms_job.remove(21)删除21号作业?br /></font> </p> <img src ="http://www.aygfsteel.com/patterns/aggbug/40402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-04-11 11:04 <a href="http://www.aygfsteel.com/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 对象http://www.aygfsteel.com/patterns/archive/2006/04/07/dwr_access_servletobjects.html野草野草Fri, 07 Apr 2006 14:09:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/04/07/dwr_access_servletobjects.htmlhttp://www.aygfsteel.com/patterns/comments/39926.htmlhttp://www.aygfsteel.com/patterns/archive/2006/04/07/dwr_access_servletobjects.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/39926.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/39926.html 我们在实际的 web 应用开发过E中Q在用户d后会(x)?/span> session 中塞入一些信息(例如用户信息Q菜单信息等Q,在页面提交后Q会(x)?/span> session 中取些信息,拼成完整的业务记录,保存到数据库中。此时就要求 DWR 可以?/span> Servlet 对象通信?/span>

其实 DWR 已经考虑好了Q在 DWR1.1 中可以利?/span> uk.ltd.getahead.dwr.WebContext ?/span> uk.ltd.getahead.dwr.WebContextFactory 来和 Http Servlet 的标准对象进行通信Q包括:(x)

l         HttpServletRequest

l         HttpServletResponse

l         HttpSession

l         ServletContext

l         ServletConfig

       具体的用方法如下:(x)

import javax.servlet.http.HttpServletRequest;

import uk.ltd.getahead.dwr.WebContext;

import uk.ltd.getahead.dwr.WebContextFactory;

 

///

WebContext ctx = WebContextFactory.get();

HttpServletRequest req = ctx.getHttpServletRequest();

       WebContext 是?/span> ThreadLocal 保存的,你可以看一?/span> uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder 源码Q所以可以在M地方使用它,例如在上一的 demo 中进行测试如下:(x)

?/span> index.html 头部增加如下代码q改名ؓ(f) index.jsp

<%@ page contentType="text/html; charset=GBK" %>

 

<%

System.out.println("This is DWR servlet object!");

 

session.setAttribute("dwr","love dwr");

%>

修改 MessageDao.java 的代码如?/span>

package test.dwr;

 

import javax.servlet.http.HttpServletRequest;

 

import uk.ltd.getahead.dwr.WebContext;

import uk.ltd.getahead.dwr.WebContextFactory;

 

public class MessageDao {

    public Message save(Message message) {

 

        WebContext ctx = WebContextFactory.get();

        HttpServletRequest req = ctx.getHttpServletRequest();

       

 

        System.out.println("========HttpServletRequest Begin=======");

        System.out.println("req:" + req.getRemoteHost());

        System.out.println("req-session:" + req.getSession().getAttribute("dwr"));

        System.out.println("text:" + req.getParameter("text"));

        System.out.println("from:" + req.getParameter("from"));

        System.out.println("=========HttpServletRequest End========");

 

        System.out.println("========Lucky DWR Begin=======");

        System.out.println("text:" + message.getText());

        System.out.println("from:" + message.getFrom());

        System.out.println("=========Lucky DWR End========");

 

        return message;

    }

 

    public Message get() {

        return new Message("This is the first dwr demo!", "test");

    }

}

 



野草 2006-04-07 22:09 发表评论
]]>
DWR使得Java中的AJAX变得?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/04/02/first_dwr_demo.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/38766.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/04/02/first_dwr_demo.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/38766.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/patterns/services/trackbacks/38766.html</trackback:ping><description><![CDATA[     摘要: DWR 是一个开源的工具Q她利用 Java 的反和 AJAX 技术实C javascript ? java cȝ通信。官方网站是Q? http://getahead.ltd.uk/dwr/ ...  <a href='http://www.aygfsteel.com/patterns/archive/2006/04/02/first_dwr_demo.html'>阅读全文</a><img src ="http://www.aygfsteel.com/patterns/aggbug/38766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-04-02 20:41 <a href="http://www.aygfsteel.com/patterns/archive/2006/04/02/first_dwr_demo.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用dom4j和XPathhttp://www.aygfsteel.com/patterns/archive/2006/03/08/Dom4jAndXPath.html野草野草Wed, 08 Mar 2006 13:32:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/03/08/Dom4jAndXPath.htmlhttp://www.aygfsteel.com/patterns/comments/34366.htmlhttp://www.aygfsteel.com/patterns/archive/2006/03/08/Dom4jAndXPath.html#Feedback4http://www.aygfsteel.com/patterns/comments/commentRss/34366.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/34366.html配置开发包

dom4j-1.6.1.jar

jaxen-1.1-beta-6.jarQ?/SPAN>XPath必备Q?/SPAN>

 

取某一节点

Element root = (Element) document.selectSingleNode("http://root");

 

取某一节点的属?/SPAN>

Attribute attribute = (Attribute) document.selectSingleNode("http://root/cell/@value");

 

使用l验

我们在做pȝ间交互时Q通常通过自定义的xml文gq行数据交换。例如:(x)pȝA需要向pȝB传输一?/SPAN>xml字串的条件如下:(x)

<?xml version="1.0" encoding="gb2312"?>

<root systemid="Darenkou" userid="admin" default="DA" icon="0000">

       <cell value=""/>

</root>

A只需填充cell节点?/SPAN>value属性|我的是将q段xml写成本地文gQ每ơ传输时首先dxml文gQ再|?/SPAN>cell节点?/SPAN>value属性|然后?/SPAN>xml对象转变成字串传l系l?/SPAN>B。这L(fng)优点是:(x)一?/SPAN>systemid="Darenkou" userid="admin" default="DA" icon="0000" 是传输参敎ͼ当有所变动时只需修改本地文g卛_?/SPAN>

 

详细例程

test.xml

<?xml version="1.0" encoding="gb2312"?>

<root id="TK12" name="理?/SPAN>" value=""/>

 

XmlTest.java

import java.io.File;

import java.io.IOException;

import java.io.StringWriter;

import java.io.UnsupportedEncodingException;

import java.util.HashMap;

import java.util.Iterator;

 

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

 

public class XmlTest {

       public static String generateXml(HashMap map) {

              String strXml = null;

 

              if (map != null) {

 

                     SAXReader reader = new SAXReader();

                     Document document = null;

 

                     try {

                            document = reader.read(new File("D:/test.xml"));

                     } catch (DocumentException e) {

                            e.printStackTrace();

 

                     }

 

                     Element root = (Element) document.selectSingleNode("http://root");

                     root.attribute("value").setValue("分布");

 

                     Iterator iter = map.keySet().iterator();

                     while (iter.hasNext()) {

                            String key = (String) iter.next();

                            String value = (String) map.get(key);

 

                            Element element = root.addElement("cell").addAttribute("value",

                                          key);

                            element.addElement("element").addAttribute("type", "数?/SPAN>")

                                          .addAttribute("name", "人数").addText(value);

 

                     }

 

                     strXml = encodeXml(document, "gb2312");

              }

 

              return strXml;

       }

 

       private static String encodeXml(Document document, String aEncode) {

              // q行~码转换

              StringWriter sw = new StringWriter();

 

              OutputFormat format = OutputFormat.createPrettyPrint();

              format.setEncoding(aEncode);

 

              try {

                     XMLWriter writer = new XMLWriter(format);

                     writer.setWriter(sw);

                     writer.write(document);

              } catch (UnsupportedEncodingException e) {

                     e.printStackTrace();

              } catch (IOException e) {

                     e.printStackTrace();

              }

 

              return sw.toString();

       }

 

       public static void main(String[] args) {

              HashMap map = new HashMap();

              map.put("上v", "200");

              map.put("北京", "300");

              map.put("天|", "300");

 

              System.out.println(generateXml(map));

 

       }

}

 



野草 2006-03-08 21:32 发表评论
]]>
初识wxPythonQ环境配|篇Q?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/patterns/archive/2006/03/08/wxPython_env.html</guid><wfw:comment>http://www.aygfsteel.com/patterns/comments/34365.html</wfw:comment><comments>http://www.aygfsteel.com/patterns/archive/2006/03/08/wxPython_env.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/patterns/comments/commentRss/34365.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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> </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已经两年多了Q有旉开发一些桌面程序作助工P熟?zhn)java那就用java开发了Q可恶的是很的应用E序却要背负着一个庞大、篏赘的jreQ特别是在给用户部vӞq要Ҏ(gu)的安装jreQ真是痛苦。而且swing的界面L让h感到不u不类Qswt好点Q但是d要拖着jreQ郁闗?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">正好q段旉心血来潮Q想学一?SPAN lang=EN-US>c的知识,g来gdgCwxPythonq个奇的东东:(x)跨^台、本地界面、语az…其实wxPython是基于Python解释器调用wxWidgets的,所以它hPython语言的简z高效,又具有wxWidgets的本地化和跨q_?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">惌l了解,q下面|站Q?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">PythonQ?A ><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">WxWidgetsQ?A ><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">WxPythonQ?A ><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> </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">想看I竟是什么,p着我配|环境看<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">下蝲安装如下软gQ?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'">  </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.msiQ?A ><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'">  </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'">  </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'">  </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">2?都在<A ><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'">  </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">安装序<SPAN lang=EN-US>1??<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'">  </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt">点击pȝ菜单<SPAN lang=EN-US>wxPython2.6 Docs and Demos and Tools ?Run the wxPython DemeQ是不是已看C可爱的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">E微解释一下:(x)<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是一个解释器Qؓ(f)wxPython提供q行环境的,安装wxPython时会(x)自动安装在pythonȝ录的/lib/site-packages目录下?/SPAN><img src ="http://www.aygfsteel.com/patterns/aggbug/34365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/patterns/" target="_blank">野草</a> 2006-03-08 21:31 <a href="http://www.aygfsteel.com/patterns/archive/2006/03/08/wxPython_env.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个数据库软编码的问题http://www.aygfsteel.com/patterns/archive/2006/03/08/orcleCoding.html野草野草Wed, 08 Mar 2006 13:28:00 GMThttp://www.aygfsteel.com/patterns/archive/2006/03/08/orcleCoding.htmlhttp://www.aygfsteel.com/patterns/comments/34364.htmlhttp://www.aygfsteel.com/patterns/archive/2006/03/08/orcleCoding.html#Feedback0http://www.aygfsteel.com/patterns/comments/commentRss/34364.htmlhttp://www.aygfsteel.com/patterns/services/trackbacks/34364.html在java中我们经怋用一下语?/FONT>

......
String exSQL = " SELECT * FROM PK_TEST WHERE ID = ?";     
pstmt = conn.prepareStatement(exSQL);
pstmt.setString(1,idValue);
ResultSet rs = pstmt.executeQuery();
......

其中PK_TESTl构如下Q?/FONT>

CREATE TABLE PK_TEST (
  ID      CHAR (9)      NOT NULL,
  NAME    VARCHAR2 (40),
  GENDER  CHAR (1),
  CONSTRAINT PK_PK_TEST
  PRIMARY KEY ( ID ) ) ;
注意QID是CHAR (9)

在表中插入测试数据:(x)
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('1        ', 'test1', '1');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('2        ', 'test2', '0');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('3        ', 'test3', '1');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('123456789', 'test4', '0');
INSERT INTO PK_TEST ( ID, NAME, GENDER ) VALUES ('987654321', 'test5', '1');

使用Toad执行:
SELECT * FROM PK_TEST WHERE ID ='1';
SELECT * FROM PK_TEST WHERE ID ='1        ';

都没有问题,但如果我前面java语法pstmt.setString(1,idValue);中的idValue赋gؓ(f)'1'Q程序就是取不到|
l箋试Q?BR>SELECT * FROM PK_TEST WHERE ID = :ID;
赋gؓ(f)'1'Q没有结果;
赋gؓ(f)'1        'Q结果出来了Q?/FONT>

可见无论在jdbcq是在数据库中Y~码和硬~码有一定的区别?/FONT>

唉!整理数据库中的主键吧QID = SUBSTR(TRIM(ID)||'000000000',0,9);



野草 2006-03-08 21:28 发表评论
]]>
վ֩ģ壺 ˮ| | ׸| | ٷ| DZ| | տ| | | ԭ| | Դ| ˮ| ˮ| ʦ| | ¤| ˱| | ¦| | | | Ҧ| | Ϫ| բ| ƽ| ˿| ¤| | ͭϿ| | ػ| | | | | | |