﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-zx_bing</title><link>http://www.blogjava.net/zxb90study/</link><description>人生路漫漫，多学些知识总是有益处的</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:56:30 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:56:30 GMT</pubDate><ttl>60</ttl><item><title>sql browser 无法启动终极解决办法</title><link>http://www.blogjava.net/zxb90study/archive/2012/07/30/384282.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Sun, 29 Jul 2012 23:23:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/30/384282.html</guid><description><![CDATA[<span style="color: rgb(0, 0, 0);">一、为 SQL 启用远程连接<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">. 单击&#8220;开始&#8221;，依次指向&#8220;程序&#8221;、&#8220;Microsoft SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);">&#8221;和&#8220;配置工具&#8221;，然后单击&#8220;SQL Server 外围应用配置器&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">. 在&#8220;SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);"> 外围应用配置器&#8221;页上，单击&#8220;服务和连接的外围应用配置器&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">3</span><span style="color: rgb(0, 0, 0);">. 在&#8220;服务和连接的外围应用配置器&#8221;页上，展开&#8220;数据库引擎&#8221;，依次单击&#8220;远程连接&#8221;和&#8220;本地连接和远程连接&#8221;，单击适用于您的环境的相应协议，然后单击&#8220;应用&#8221;。<br /><br />注意：请在接收到以下消息时单击&#8220;确定&#8221;：<br />直到重新启动数据库引擎服务后，对连接设置所做的更改才会生效。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">4</span><span style="color: rgb(0, 0, 0);">. 在&#8220;服务和连接的外围应用配置器&#8221;页上，展开&#8220;数据库引擎&#8221;，依次单击&#8220;服务&#8221;和&#8220;停止&#8221;，等待 MSSQLSERVER 服务停止，然后单击&#8220;启动&#8221;以重新启动 MSSQLSERVER 服务。 <br /><br />二、启用 SQL Server Browser 服务<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">. 单击&#8220;开始&#8221;，依次指向&#8220;程序&#8221;、&#8220;Microsoft SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);">&#8221;和&#8220;配置工具&#8221;，然后单击&#8220;SQL Server 外围应用配置器&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">. 在&#8220;SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);"> 外围应用配置器&#8221;页上，单击&#8220;服务和连接的外围应用配置器&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">3</span><span style="color: rgb(0, 0, 0);">. 在&#8220;服务和连接的外围应用配置器&#8221;页上，单击&#8220;SQL Server Browser&#8221;，在&#8220;启动类型&#8221;中单击&#8220;自动&#8221;选项，然后单击&#8220;应用&#8221;。<br /><br />注意：在单击&#8220;自动&#8221;选项后，每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">4</span><span style="color: rgb(0, 0, 0);">. 单击&#8220;启动&#8221;，然后单击&#8220;确定&#8221;。 <br /><br />三、在 Windows 防火墙中为SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);"> 创建例外<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">. 在 Windows 防火墙中，单击&#8220;例外&#8221;选项卡，然后单击&#8220;添加程序&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">. 在&#8220;添加程序&#8221;窗口中，单击&#8220;浏览&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">3</span><span style="color: rgb(0, 0, 0);">. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">\MSSQL\Binn\sqlservr.exe 可执行程序，单击&#8220;打开&#8221;，然后单击&#8220;确定&#8221;。<br /><br />注意：上述路径可能会根据 SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);"> 的安装位置而不同。<br /><br />四、在 Windows 防火墙中为 SQL Server Browser 服务创建例外<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">. 在 Windows 防火墙中，单击&#8220;例外&#8221;选项卡，然后单击&#8220;添加程序&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">. 在&#8220;添加程序&#8221;窗口中，单击&#8220;浏览&#8221;。 <br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">3</span><span style="color: rgb(0, 0, 0);">. 单击 C:\Program Files\Microsoft SQL Server\</span><span style="color: rgb(128, 0, 0); font-weight: bold;">90</span><span style="color: rgb(0, 0, 0);">\Shared\sqlbrowser.exe 可执行程序，单击&#8220;打开&#8221;，然后单击&#8220;确定&#8221;。<br /><br />注意：上述路径可能会根据 SQL Server </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2005</span><span style="color: rgb(0, 0, 0);"> 的安装位置而不同。 <br /><br />五、远程连接端口设置(很关键的一步，很多方法只讲了一到四步，却没有讲到第五步)<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">、在服务器上打开SQL Server Configuration Manager。选择SQL Server配置治理器</span><span style="color: rgb(128, 128, 128);">-&gt;</span><span style="color: rgb(0, 0, 0);">SQL Server 2005网络配置</span><span style="color: rgb(128, 128, 128);">-&gt;</span><span style="color: rgb(0, 0, 0);">MSSQLSERVER的协议</span><span style="color: rgb(128, 128, 128);">-&gt;</span><span style="color: rgb(0, 0, 0);">TCP</span><span style="color: rgb(128, 128, 128);">/</span><span style="color: rgb(0, 0, 0);">IP，在弹出对话框中选择IP地址</span><span style="color: rgb(128, 128, 128);">-&gt;</span><span style="color: rgb(0, 0, 0);">IPALL</span><span style="color: rgb(128, 128, 128);">-&gt;</span><span style="color: rgb(0, 0, 0);">TCP端口，设置为可用端口。(如果默认的1433端口老是连接不上，你就设置为你确认已经打开的端口试试，如21端口等)<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">、在&#8220;服务和连接的外围应用配置器&#8221;页上，展开&#8220;数据库引擎&#8221;，依次单击&#8220;服务&#8221;和&#8220;停止&#8221;，等待 MSSQLSERVER 服务停止，然后单击&#8220;启动&#8221;以重新启动 MSSQLSERVER 服务。 <br /><br />六、测试连接<br /><br /></span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">、打开SQL2005登陆界面，输入服务器IP和用户名及密码。<br />如：<br />服务器名称：</span><span style="color: rgb(128, 0, 0); font-weight: bold;">192.168</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1.200</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(128, 0, 0); font-weight: bold;">21</span><span style="color: rgb(0, 0, 0);"><br />用户名：sa<br />密码：sa<br />点连接，结果连接成功。<br />PS:上面的服务器名称中的,21中的21第五步中第1步中设置的IPALL中的TCP端口</span><img src ="http://www.blogjava.net/zxb90study/aggbug/384282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-30 07:23 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/30/384282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate+java+sql 之间数据类型转换关系 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384156.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:37:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384156.html</guid><description><![CDATA[<table style="width: 724px; height: 382px;" border="0" cellspacing="2" cellpadding="2" width="724"><br /><tbody><br /><tr><br /><td height="20">Hibernate映射类型</td><br /><td>java类型</td><br /><td>标准SQL类型</td></tr><br /><tr><br /><td>integer</td><br /><td>java.lang.Integer</td><br /><td>integer</td></tr><br /><tr><br /><td>long</td><br /><td>java.lang.Long</td><br /><td>bigint</td></tr><br /><tr><br /><td>short</td><br /><td>java.lang.Short</td><br /><td>smallint</td></tr><br /><tr><br /><td>float</td><br /><td>java.lang.Float</td><br /><td>float</td></tr><br /><tr><br /><td>double</td><br /><td>java.lang.Float</td><br /><td>double</td></tr><br /><tr><br /><td>big_decimal</td><br /><td>java.math.BigDecimal</td><br /><td>numeric</td></tr><br /><tr><br /><td>character</td><br /><td>java.lang.String</td><br /><td>char(1)</td></tr><br /><tr><br /><td>string</td><br /><td>java.lang.String</td><br /><td>varchar</td></tr><br /><tr><br /><td>byte</td><br /><td>byte或java.lang.Byte</td><br /><td>tinyint</td></tr><br /><tr><br /><td>boolean</td><br /><td>boolean或java.lang.Boolean&nbsp; </td><br /><td>bit</td></tr><br /><tr><br /><td>yes_no&nbsp;&nbsp;&nbsp; </td><br /><td>boolean或java.lang.Boolean</td><br /><td>char(1)('Y'/'N')</td></tr><br /><tr><br /><td>true_false</td><br /><td>boolean或java.lang.Boolean</td><br /><td>char(1)('Y'/'N')</td></tr><br /><tr><br /><td>date</td><br /><td>java.util.Date或java.sql.Date</td><br /><td>date</td></tr><br /><tr><br /><td>time</td><br /><td>java.util.Date或java.sql.Time</td><br /><td>time</td></tr><br /><tr><br /><td>timestamp</td><br /><td>java.util.Date或java.sql.timestamp</td><br /><td>timestamp</td></tr><br /><tr><br /><td>calendar</td><br /><td>java.util.Calendar</td><br /><td>timestamp</td></tr><br /><tr><br /><td>calendar_date</td><br /><td>java.util.Calendar</td><br /><td>date</td></tr><br /><tr><br /><td>binary</td><br /><td>byte[]</td><br /><td>varbinary或blob</td></tr><br /><tr><br /><td>text</td><br /><td>java.lang.String</td><br /><td>clob</td></tr><br /><tr><br /><td>serializable</td><br /><td>java.io.Serializable实例</td><br /><td>varbinary或blob</td></tr><br /><tr><br /><td>clob</td><br /><td>java.sql.Clob</td><br /><td>clob</td></tr><br /><tr><br /><td>blob</td><br /><td>java.sql.Blob</td><br /><td>varbinary或blob</td></tr><br /><tr><br /><td>class</td><br /><td>java.lang.Class</td><br /><td>varchar</td></tr><br /><tr><br /><td>locale</td><br /><td>java.util.Locale</td><br /><td>varchar</td></tr><br /><tr><br /><td>timezone</td><br /><td>java.util.TimeZone</td><br /><td>varchar</td></tr><br /><tr><br /><td>currency</td><br /><td>java.util.Currency</td><br /><td>varchar</td></tr></tbody></table><img src ="http://www.blogjava.net/zxb90study/aggbug/384156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:37 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>外键查询 遇到错误:could not initialize proxy - the owning Session was close </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384153.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384153.html</guid><description><![CDATA[关于lazy机制：<br /><br />延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略，那么必须当代理类实例或代理集合处于持久化状态（即处于Session范围内）时，才能初始化它。如果在游离状态时才初始化它，就会产生延迟初始化错误。<br /><br />下面把Customer.hbm.xml文件的&lt;class&gt;元素的lazy属性设为true，表示使用延迟检索策略：<br /><br />&lt;class name="mypack.Customer" table="CUSTOMERS" lazy="true"&gt;<br /><br />当执行Session的load()方法时，Hibernate不会立即执行查询CUSTOMERS表的select语句，仅仅返回Customer类的代理类的实例，这个代理类具由以下特征：<br /><br />（1） 由Hibernate在运行时动态生成，它扩展了Customer类，因此它继承了Customer类的所有属性和方法，但它的实现对于应用程序是透明的。<br />（2） 当Hibernate创建Customer代理类实例时，仅仅初始化了它的OID属性，其他属性都为null，因此这个代理类实例占用的内存很少。<br />（3）当应用程序第一次访问Customer代理类实例时（例如调用customer.getXXX()或customer.setXXX()方法）， Hibernate会初始化代理类实例，在初始化过程中执行select语句，真正从数据库中加载Customer对象的所有数据。但有个例外，那就是当应用程序访问Customer代理类实例的getId()方法时，Hibernate不会初始化代理类实例，因为在创建代理类实例时OID就存在了，不必到数据库中去查询。<br /><br />提示：Hibernate采用CGLIB工具来生成持久化类的代理类。CGLIB是一个功能强大的Java字节码生成工具，它能够在程序运行时动态生成扩展 Java类或者实现Java接口的代理类。关于CGLIB的更多知识，请参考：http://cglib.sourceforge.net/。<br /><br />以下代码先通过Session的load()方法加载Customer对象，然后访问它的name属性： <br /><br />tx = session.beginTransaction();<br />Customer customer=(Customer)session.load(Customer.class,new Long(1));<br />customer.getName();<br />tx.commit();<br /><br />在运行session.load()方法时Hibernate不执行任何select语句，仅仅返回Customer类的代理类的实例，它的OID为1，这是由load()方法的第二个参数指定的。当应用程序调用customer.getName()方法时，Hibernate会初始化Customer代理类实例，从数据库中加载Customer对象的数据，执行以下select语句：<br /><br />select * from CUSTOMERS where ID=1;<br />select * from ORDERS where CUSTOMER_ID=1;<br /><br />当&lt;class&gt;元素的lazy属性为true，会影响Session的load()方法的各种运行时行为，下面举例说明。<br /><br />1．如果加载的Customer对象在数据库中不存在，Session的load()方法不会抛出异常，只有当运行customer.getName()方法时才会抛出以下异常：<br /><br />ERROR LazyInitializer:63 - Exception initializing proxy<br />net.sf.hibernate.ObjectNotFoundException: No row with the given identifier exists: 1, of class: <br />mypack.Customer<br /><br />2．如果在整个Session范围内，应用程序没有访问过Customer对象，那么Customer代理类的实例一直不会被初始化，Hibernate不会执行任何select语句。以下代码试图在关闭Session后访问Customer游离对象：<br /><br />tx = session.beginTransaction();<br />Customer customer=(Customer)session.load(Customer.class,new Long(1));<br />tx.commit();<br />session.close();<br />customer.getName();<br /><br />由于引用变量customer引用的Customer代理类的实例在Session范围内始终没有被初始化，因此在执行customer.getName()方法时，Hibernate会抛出以下异常：<br /><br />ERROR LazyInitializer:63 - Exception initializing proxy<br />net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed<br /><br />由此可见，Customer代理类的实例只有在当前Session范围内才能被初始化。<br /><br />3．net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显式初始化代理类实例，isInitialized()方法用于判断代理类实例是否已经被初始化。例如：<br /><br />tx = session.beginTransaction();<br />Customer customer=(Customer)session.load(Customer.class,new Long(1));<br />if(!Hibernate.isInitialized(customer)) <br />Hibernate.initialize(customer);<br />tx.commit();<br />session.close();<br />customer.getName();<br /><br />以上代码在Session范围内通过Hibernate类的initialize()方法显式初始化了Customer代理类实例，因此当Session关闭后，可以正常访问Customer游离对象。<br /><br />4．当应用程序访问代理类实例的getId()方法时，不会触发Hibernate初始化代理类实例的行为，例如：<br /><br />tx = session.beginTransaction();<br />Customer customer=(Customer)session.load(Customer.class,new Long(1));<br />customer.getId();<br />tx.commit();<br />session.close();<br />customer.getName();<br /><br />当应用程序访问customer.getId()方法时，该方法直接返回Customer代理类实例的OID值，无需查询数据库。由于引用变量 customer始终引用的是没有被初始化的Customer代理类实例，因此当Session关闭后再执行customer.getName()方法， Hibernate会抛出以下异常：<br /><br />ERROR LazyInitializer:63 - Exception initializing proxy<br />net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed<br /><br /><br />解决方法：<br /><br /><span style="color: red;"><strong>由于hibernate采用了lazy=true,这样当你用hibernate查询时,返回实际为利用cglib增强的代理类,但其并没有实际填充;当你在前端,利用它来取值(getXXX)时,这时Hibernate才会到数据库执行查询,并填充对象,但此时如果和这个代理类相关的session已关闭掉,就会产生种错误.<br />在做一对多时，有时会出现"could not initialize proxy - clothe owning Session was sed,这个好像是hibernate的缓存问题.问题解决:需要在&lt;many-to-one&gt;里设置lazy="false". 但有可能会引发另一个异常叫<br /><br />failed to lazily initialize a collection of role: XXXXXXXX, no session or session was closed<br /><br />此异常解决方案请察看本人博客（http://hi.baidu.com/kekemao1）的Hibernate异常中的《failed to lazily initialize a collection of role异常》<br /><br />?<br />解决方法:在web.xml中加入<br />&lt;filter&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter<br />&nbsp;&nbsp;&nbsp; &lt;/filter-class&gt;<br />&lt;/filter<br />&lt;filter-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;<br />&lt;/filter-mapping&gt;<br />就可以了;</strong></span><br />参考了:<br />Hibernate与延迟加载：<br /><br />Hibernate对象关系映射提供延迟的与非延迟的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的（如果不是成千的话）select语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候，经常会导致整个数据库都在初始化的阶段被读出来了。当然，你可以不厌其烦地检查每一个对象与其他对象的关系，并把那些最昂贵的删除，但是到最后，我们可能会因此失去了本想在ORM工具中获得的便利。<br /><br /><br />一个明显的解决方法是使用Hibernate提供的延迟加载机制。这种初始化策略只在一个对象调用它的一对多或多对多关系时才将关系对象读取出来。这个过程对开发者来说是透明的，而且只进行了很少的数据库操作请求，因此会得到比较明显的性能提升。这项技术的一个缺陷是延迟加载技术要求一个Hibernate会话要在对象使用的时候一直开着。这会成为通过使用DAO模式将持久层抽象出来时的一个主要问题。为了将持久化机制完全地抽象出来，所有的数据库逻辑，包括打开或关闭会话，都不能在应用层出现。最常见的是，一些实现了简单接口的DAO实现类将数据库逻辑完全封装起来了。一种快速但是笨拙的解决方法是放弃DAO模式，将数据库连接逻辑加到应用层中来。这可能对一些小的应用程序有效，但是在大的系统中，这是一个严重的设计缺陷，妨碍了系统的可扩展性。<br /><br />在Web层进行延迟加载<br /><br />幸运的是，Spring框架为Hibernate延迟加载与DAO模式的整合提供了一种方便的解决方法。对那些不熟悉Spring与Hibernate集成使用的人，我不会在这里讨论过多的细节，但是我建议你去了解Hibernate与Spring集成的数据访问。以一个Web应用为例，Spring提供了OpenSessionInViewFilter和OpenSessionInViewInterceptor。我们可以随意选择一个类来实现相同的功能。两种方法唯一的不同就在于interceptor在Spring容器中运行并被配置在web应用的上下文中，而Filter在Spring之前运行并被配置在web.xml中。不管用哪个，他们都在请求将当前会话与当前（数据库）线程绑定时打开Hibernate会话。一旦已绑定到线程，这个打开了的Hibernate会话可以在DAO实现类中透明地使用。这个会话会为延迟加载数据库中值对象的视图保持打开状态。一旦这个逻辑视图完成了，Hibernate会话会在Filter的doFilter方法或者Interceptor的postHandle方法中被关闭。下面是每个组件的配置示例：<br /><br /><br /><br />Interceptor的配置:<br /><br /><br />&lt;beans&gt; <br />&lt;bean id="urlMapping" <br />class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"&gt; <br />&lt;property name="interceptors"&gt; <br />&lt;list&gt; <br />&lt;ref bean="openSessionInViewInterceptor"/&gt; <br />&lt;/list&gt; <br />&lt;/property&gt; <br />&lt;property name="mappings"&gt; <br /><br />&lt;/bean&gt; <br /><br />&lt;bean name="openSessionInViewInterceptor" <br />class="org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor"&gt; <br />&lt;property name="sessionFactory"&gt;&lt;ref bean="sessionFactory"/&gt;&lt;/property&gt; <br />&lt;/bean&gt; <br />&lt;/beans&gt; <br /><br />Filter的配置<br /><br /><br />&lt;web-app&gt; <br /><br />&lt;filter&gt; <br />&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; <br />&lt;filter-class&gt; <br />org.springframework.orm.hibernate.support.OpenSessionInViewFilter <br />&lt;/filter-class&gt; <br />&lt;/filter&gt; <br /><br />&lt;filter-mapping&gt; <br />&lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; <br />&lt;url-pattern&gt;*. spring &lt;/url-pattern&gt; <br />&lt;/filter-mapping&gt; <br /><br />&lt;/web-app&gt; <br /><br /><br />实现Hibernate的Dao接口来使用打开的会话是很容易的。事实上，如果你已经使用了Spring框架来实现你的Hibernate Dao,很可能你不需要改变任何东西。方便的HibernateTemplate公用组件使访问数据库变成小菜一碟，而DAO接口只有通过这个组件才可以访问到数据库。下面是一个示例的DAO：<br /><br /><br />public class HibernateProductDAO extends HibernateDaoSupport implements ProductDAO { <br /><br />public Product getProduct(Integer productId) { <br />return (Product)getHibernateTemplate().load(Product.class, productId); <br />} <br /><br />public Integer saveProduct(Product product) { <br />return (Integer) getHibernateTemplate().save(product); <br />} <br /><br />public void updateProduct(Product product) { <br />getHibernateTemplate().update(product); <br />} <br />} <br /><br /><br />在业务逻辑层中使用延迟加载<br /><br />即使在视图外面，Spring框架也通过使用AOP 拦截器 HibernateInterceptor来使得延迟加载变得很容易实现。这个Hibernate 拦截器透明地将调用配置在Spring应用程序上下文中的业务对象中方法的请求拦截下来，在调用方法之前打开一个Hibernate会话，然后在方法执行完之后将会话关闭。让我们来看一个简单的例子，假设我们有一个接口BussinessObject：<br /><br /><br />public&nbsp;&nbsp;&nbsp;&nbsp; interface&nbsp;&nbsp;&nbsp; BusinessObject&nbsp;&nbsp;&nbsp;&nbsp; { <br />public&nbsp;&nbsp;&nbsp;&nbsp; void&nbsp;&nbsp;&nbsp; doSomethingThatInvolvesDaos(); <br />} <br />类BusinessObjectImpl实现了BusinessObject接口:<br /><br />public&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp; BusinessObjectImpl&nbsp;&nbsp;&nbsp; implements&nbsp;&nbsp;&nbsp; BusinessObject&nbsp;&nbsp;&nbsp;&nbsp; { <br />public&nbsp;&nbsp;&nbsp;&nbsp; void&nbsp;&nbsp;&nbsp; doSomethingThatInvolvesDaos()&nbsp;&nbsp;&nbsp;&nbsp; { <br />//&nbsp;&nbsp;&nbsp; lots of logic that calls <br />//&nbsp;&nbsp;&nbsp; DAO classes Which access <br />//&nbsp;&nbsp;&nbsp; data objects lazily&nbsp; <br />}&nbsp; <br />}&nbsp; <br /><br /><br /><br />通过在Spring应用程序上下文中的一些配置，我们可以让将调用BusinessObject的方法拦截下来，再令它的方法支持延迟加载。看看下面的一个程序片段：<br /><br /><br /><br />&lt;beans&gt; <br />&lt;bean id="hibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor"&gt; <br />&lt;property name="sessionFactory"&gt; <br />&lt;ref bean="sessionFactory"/&gt; <br />&lt;/property&gt; <br />&lt;/bean&gt; <br />&lt;bean id="businessObjectTarget" class="com.acompany.BusinessObjectImpl"&gt; <br />&lt;property name="someDAO"&gt;&lt;ref bean="someDAO"/&gt;&lt;/property&gt; <br />&lt;/bean&gt; <br />&lt;bean id="businessObject" class="org.springframework.aop.framework.ProxyFactoryBean"&gt; <br />&lt;property name="target"&gt;&lt;ref bean="businessObjectTarget"/&gt;&lt;/property&gt; <br />&lt;property name="proxyInterfaces"&gt; <br />&lt;value&gt;com.acompany.BusinessObject&lt;/value&gt; <br />&lt;/property&gt; <br />&lt;property name="interceptorNames"&gt; <br />&lt;list&gt; <br />&lt;value&gt;hibernateInterceptor&lt;/value&gt; <br />&lt;/list&gt; <br />&lt;/property&gt; <br />&lt;/bean&gt; <br />&lt;/beans&gt;<br /><br />当businessObject被调用的时候，HibernateInterceptor打开一个Hibernate会话，并将调用请求传递给BusinessObjectImpl对象。当BusinessObjectImpl执行完成后，HibernateInterceptor透明地关闭了会话。应用层的代码不用了解任何持久层逻辑，还是实现了延迟加载。<br /><br /><br />在单元测试中测试延迟加载<br /><br />最后，我们需要用J-Unit来测试我们的延迟加载程序。我们可以轻易地通过重写TestCase类中的setUp和tearDown方法来实现这个要求。我比较喜欢用这个方便的抽象类作为我所有测试类的基类。<br /><br /><br />public abstract class MyLazyTestCase extends TestCase { <br /><br />private SessionFactory sessionFactory; <br />private Session session; <br /><br />public void setUp() throws Exception { <br />super.setUp(); <br />SessionFactory sessionFactory = (SessionFactory) getBean("sessionFactory"); <br />session = SessionFactoryUtils.getSession(sessionFactory, true); <br />Session s = sessionFactory.openSession(); <br />TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s)); <br /><br />} <br /><br />protected Object getBean(String beanName) { <br />//Code to get objects from Spring application context <br />} <br /><br />public void tearDown() throws Exception { <br />super.tearDown(); <br />SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sessionFactory); <br />Session s = holder.getSession(); <br />s.flush(); <br />TransactionSynchronizationManager.unbindResource(sessionFactory); <br />SessionFactoryUtils.closeSessionIfNecessary(s, sessionFactory); <br />} <br /><br />--------------------------------------------------------------<br />--------------------------------------------------------------<br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/507373#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;?xml version=</span><span class="string">"1.0"</span><span>?&gt;&nbsp; </span></li><li><span>&lt;!DOCTYPE hibernate-mapping PUBLIC&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="string">"-//Hibernate/Hibernate Mapping DTD//EN"</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="string">"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span>&gt;&nbsp; </span></span></li><li><span>&lt;hibernate-mapping <span class="keyword">package</span><span>=</span><span class="string">"com.isoftstone.lms.model"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;<span class="keyword">class</span><span> name=</span><span class="string">"Order"</span><span> table=</span><span class="string">"sv_order"</span><span> &gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name=<span class="string">"orderId"</span><span> column=</span><span class="string">"sv_order_id"</span><span> type=</span><span class="string">"string"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator <span class="keyword">class</span><span>=</span><span class="string">"sequence"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name=<span class="string">"sequence"</span><span>&gt;SEQ_ORDERID&lt;/param&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/generator&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; many-to-one name=<span class="string">"style"</span><span> column=</span><span class="string">"sv_style_id"</span><span> lazy=</span><span class="string">"false"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-one name=<span class="string">"state"</span><span> column=</span><span class="string">"sv_state_id"</span><span>&nbsp; lazy=</span><span class="string">"false"</span><span>/&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-one name=<span class="string">"client"</span><span> column=</span><span class="string">"sv_client_id"</span><span> lazy=</span><span class="string">"false"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-one name=<span class="string">"baseOrder"</span><span> column=</span><span class="string">"sv_order_baseid"</span><span>&nbsp; lazy=</span><span class="string">"false"</span><span>/&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"orderNo"</span><span> column=</span><span class="string">"sv_order_orderno"</span><span> type=</span><span class="string">"long"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"createDate"</span><span> column=</span><span class="string">"sv_order_createdate"</span><span> type=</span><span class="string">"date"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"sendDate"</span><span> column=</span><span class="string">"sv_order_senddate"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"sendAddress"</span><span> column=</span><span class="string">"sv_order_sendAddress"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"accepter"</span><span> column=</span><span class="string">"sv_order_accepter"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"postNo"</span><span> column=</span><span class="string">"sv_order_postNo"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"phone"</span><span> column=</span><span class="string">"sv_order_phone"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"totalMoney"</span><span> column=</span><span class="string">"sv_order_totalmoney"</span><span> type=</span><span class="string">"double"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"isinvoice"</span><span> column=</span><span class="string">"sv_order_isinvoice"</span><span> type=</span><span class="string">"int"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=<span class="string">"remark"</span><span> column=</span><span class="string">"sv_order_remark"</span><span> type=</span><span class="string">"string"</span><span> /&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set name=<span class="string">"orderGoodss"</span><span> inverse=</span><span class="string">"true"</span><span> lazy=</span><span class="string">"extra"</span><span> cascade=</span><span class="string">"all"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column=<span class="string">"sv_order_id"</span><span>/&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-many <span class="keyword">class</span><span>=</span><span class="string">"OrderGoods"</span><span>/&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/set&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;/<span class="keyword">class</span><span>&gt;&nbsp; </span></span></li><li><span>&lt;/hibernate-mapping&gt;&nbsp; </span></li></ol></div><pre style="display: none;" class="java" title="外键查询 遇到错误:could not initialize proxy - the owning Session was close" pre_index="0" source_url="http://oyprunner.iteye.com/blog/507373" codeable_type="Blog" codeable_id="507373" name="code">&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;
&lt;hibernate-mapping package="com.isoftstone.lms.model"&gt;
	&lt;class name="Order" table="sv_order" &gt;
		&lt;id name="orderId" column="sv_order_id" type="string"&gt;
			&lt;generator class="sequence"&gt;
				&lt;param name="sequence"&gt;SEQ_ORDERID&lt;/param&gt;
			&lt;/generator&gt;
		&lt;/id&gt;
		
		many-to-one name="style" column="sv_style_id" lazy="false" /&gt;
		&lt;many-to-one name="state" column="sv_state_id"  lazy="false"/&gt;
		&lt;many-to-one name="client" column="sv_client_id" lazy="false" /&gt;
		&lt;many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/&gt;
		&lt;property name="orderNo" column="sv_order_orderno" type="long" /&gt;
		&lt;property name="createDate" column="sv_order_createdate" type="date" /&gt;
		&lt;property name="sendDate" column="sv_order_senddate" type="string" /&gt;
		&lt;property name="sendAddress" column="sv_order_sendAddress" type="string" /&gt;
		&lt;property name="accepter" column="sv_order_accepter" type="string" /&gt;
		&lt;property name="postNo" column="sv_order_postNo" type="string" /&gt;
		&lt;property name="phone" column="sv_order_phone" type="string" /&gt;
		&lt;property name="totalMoney" column="sv_order_totalmoney" type="double" /&gt;
		&lt;property name="isinvoice" column="sv_order_isinvoice" type="int" /&gt;
		&lt;property name="remark" column="sv_order_remark" type="string" /&gt;
		
		&lt;set name="orderGoodss" inverse="true" lazy="extra" cascade="all"&gt;
			&lt;key column="sv_order_id"/&gt;
			&lt;one-to-many class="OrderGoods"/&gt;
		&lt;/set&gt;
	&lt;/class&gt;
&lt;/hibernate-mapping&gt;</pre><br />[color=red]<div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/507373#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;many-to-one name=</span><span class="string">"style"</span><span> column=</span><span class="string">"sv_style_id"</span><span> lazy=</span><span class="string">"false"</span><span> /&gt;&nbsp; </span></li><li><span>&lt;many-to-one name=<span class="string">"state"</span><span> column=</span><span class="string">"sv_state_id"</span><span>&nbsp; lazy=</span><span class="string">"false"</span><span>/&gt;&nbsp; </span></span></li><li><span>&lt;many-to-one name=<span class="string">"client"</span><span> column=</span><span class="string">"sv_client_id"</span><span> lazy=</span><span class="string">"false"</span><span> /&gt;&nbsp; </span></span></li><li><span>&lt;many-to-one name=<span class="string">"baseOrder"</span><span> column=</span><span class="string">"sv_order_baseid"</span><span>&nbsp; lazy=</span><span class="string">"false"</span><span>/&gt;&nbsp; </span></span></li></ol></div><pre style="display: none;" class="java" title="外键查询 遇到错误:could not initialize proxy - the owning Session was close" pre_index="1" source_url="http://oyprunner.iteye.com/blog/507373" codeable_type="Blog" codeable_id="507373" name="code">		&lt;many-to-one name="style" column="sv_style_id" lazy="false" /&gt;
		&lt;many-to-one name="state" column="sv_state_id"  lazy="false"/&gt;
		&lt;many-to-one name="client" column="sv_client_id" lazy="false" /&gt;
		&lt;many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/&gt;</pre>[/color]<img src ="http://www.blogjava.net/zxb90study/aggbug/384153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:13 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate基于外键查询 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384152.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:11:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384152.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/507219#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span class="keyword">public</span><span> List&lt;Order&gt; getClientOrder(String clientId) {&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = <span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;Order&gt; orderList = <span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">try</span><span> {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session = HibernateUtil.getSession();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.beginTransaction();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orderList = session.createQuery(<span class="string">"from Order o where o.client.clientId = ?"</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .setParameter(<span class="number">1</span><span>,clientId)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .list();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.getTransaction().commit();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <span class="keyword">catch</span><span> (Exception e) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.getTransaction().rollback();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <span class="keyword">finally</span><span> {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HibernateUtil.closeSession(session);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span> orderList;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:11 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 多条件查询 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384151.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:08:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384151.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/507419#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span class="keyword">public</span><span> List&lt;Client&gt; searchClients(String clientName, String tel,&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String identityNo) {&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb = <span class="keyword">new</span><span> StringBuffer(</span><span class="string">"from Client c where 1=1"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(clientName != </span><span class="keyword">null</span><span> &amp;&amp; !</span><span class="string">""</span><span>.equals(clientName) ){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"and c.name like '%"</span><span> + clientName + </span><span class="string">"%'"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(tel != </span><span class="keyword">null</span><span> &amp;&amp; !</span><span class="string">""</span><span>.equals(tel)){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"and c.tel = "</span><span> + tel);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(identityNo != </span><span class="keyword">null</span><span> &amp;&amp; !</span><span class="string">""</span><span>.equals(identityNo)){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"and c.identityNo = "</span><span> + identityNo);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span> clientDao.searchClients(sb.toString());&nbsp; </span></span></li><li><span>}&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:08 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合，还要求不能超过6个汉字,还要验证汉字和字母，数字的组合 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html</guid><description><![CDATA[&lt;input name="username" value="" length="12" maxlengthd="12"/&gt; <br />数据库里面username vachar2(12) <br /><br />这个输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合，还要求不能超过6个汉字,还要验证汉字和字母，数字的组合 <br /><br />如：用户名1999(就可以)，麦克斯韦1999(就不行) <br /><br />因为数据库里面要求的长度是12，一个汉字就占两个，但是在页面可以输入12个汉字 <br />请用JAVASCRIPT写出你的解决方案？ <br /><br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Js代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/478313#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-c"><li><span>&lt;html&gt;&nbsp;&nbsp;&nbsp; </span></li><li><span>&lt;meta http-equiv=<span class="string">"Content-Type"</span><span> content=</span><span class="string">"text/html; charset=utf-8"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>输入待测字串: &amp;nbsp;&lt;input type=<span class="string">"text"</span><span> onblur=</span><span class="string">"test(this.value);"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&lt;/html&gt;&nbsp;&nbsp;&nbsp; </span></li><li><span>&lt;script language=<span class="string">"javascript"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&lt;!--&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span class="comment">//测试匹配情况&nbsp;&nbsp; </span><span>&nbsp; </span></li><li><span class="keyword">function</span><span> test(inputVal)&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>{&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//去除首尾空格&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; inputValinputVal = inputVal.replace(/^\s*|\s*$/g,<span class="string">""</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//零长字串不作处理&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> ( inputVal.length == 0 )&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//只能匹配数字,字母或汉字&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//匹配数字或字母(包括大小写)&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> codeMatch = inputVal.match(/[a-zA-Z0-9]/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//匹配汉字&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//数字或字母个数&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> codeNum = codeMatch ? codeMatch.length : 0;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//汉字个数&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> charNum = charMatch ? charMatch.length : 0;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//成功&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> ( _match &amp;&amp; codeNum + 2*charNum &lt;= 12 )&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"输入正确!"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//失败&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; alert(<span class="string">"输入错误!"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>}&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span class="comment">//--&gt;&nbsp; </span><span>&nbsp; </span></li><li><span>&lt;/script&gt;&nbsp; </span></li></ol></div><img src ="http://www.blogjava.net/zxb90study/aggbug/384150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:06 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax 模拟动态列表 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html</guid><description><![CDATA[three.html<br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/508390#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;!DOCTYPE HTML PUBLIC </span><span class="string">"-//W3C//DTD HTML 4.01 Transitional//EN"</span><span>&gt;&nbsp; </span></li><li><span>&lt;html&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;head&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;index.html&lt;/title&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"keywords"</span><span> content=</span><span class="string">"keyword1,keyword2,keyword3"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"description"</span><span> content=</span><span class="string">"this is my page"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"content-type"</span><span> content=</span><span class="string">"text/html; charset=GBK"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=<span class="string">"text/javascript"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xmlhttp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function loadXMLDoc(valueFromSelect1){&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url = <span class="string">"three.jsp?valueFromSelect="</span><span> + valueFromSelect1 + </span><span class="string">"&amp;"</span><span> + Math.random();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(url);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (window.XMLHttpRequest){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">new</span><span> XMLHttpRequest();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span> </span><span class="keyword">if</span><span> (window.ActiveXObject){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">new</span><span> ActiveXObject(</span><span class="string">"Microsoft.XMLHTTP"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp!=</span><span class="keyword">null</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.onreadystatechange=updatePage;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.open(<span class="string">"GET"</span><span>,url,</span><span class="keyword">true</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.send(<span class="keyword">null</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span>{&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"Your browser does not support XMLHTTP."</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function state_Change(){&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp.readyState==</span><span class="number">4</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp.status==</span><span class="number">200</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; updatePage();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span>{&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"Problem retrieving XML data"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function updatePage(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">// 清空select2</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">while</span><span>(select2.options[</span><span class="number">0</span><span>] != </span><span class="keyword">null</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2.options[<span class="number">0</span><span>] = </span><span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">// 设置select2</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xmlDoc = xmlhttp.responseXML;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(xmlDoc);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var labelValueBeanElements = xmlDoc.getElementsByTagName(<span class="string">"labelValueBean"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i = </span><span class="number">0</span><span>; i &lt; labelValueBeanElements.length; i++){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var entityValue = xmlDoc.getElementsByTagName(<span class="string">"value"</span><span>)[i].childNodes[</span><span class="number">0</span><span>].nodeValue;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var entityLabel = xmlDoc.getElementsByTagName(<span class="string">"label"</span><span>)[i].childNodes[</span><span class="number">0</span><span>].nodeValue;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2.options[i] = <span class="keyword">new</span><span> Option(entityLabel,entityValue,</span><span class="keyword">false</span><span>,</span><span class="keyword">false</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;/head&gt;&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;body&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select1:&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id=<span class="string">"select1"</span><span> onchange=</span><span class="string">"loadXMLDoc(this.value)"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value=<span class="string">"1"</span><span>&gt;</span><span class="number">1</span><span>&lt;/option&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value=<span class="string">"2"</span><span>&gt;</span><span class="number">2</span><span>&lt;/option&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2:&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id=<span class="string">"select2"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=<span class="string">"button"</span><span> value=</span><span class="string">"显示select2的值"</span><span> onclick=</span><span class="string">"alert(select2.value)"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;/body&gt;&nbsp; </span></li><li><span>&lt;/html&gt;&nbsp; </span></li></ol></div><pre style="display: none;" class="java" title="Ajax 模拟动态列表" pre_index="0" source_url="http://oyprunner.iteye.com/blog/508390" codeable_type="Blog" codeable_id="508390" name="code">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;index.html&lt;/title&gt;
        &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;
        &lt;meta http-equiv="description" content="this is my page"&gt;
        &lt;meta http-equiv="content-type" content="text/html; charset=GBK"&gt;
        &lt;script type="text/javascript"&gt;
        var xmlhttp;
        function loadXMLDoc(valueFromSelect1){
            var url = "three.jsp?valueFromSelect=" + valueFromSelect1 + "&amp;" + Math.random();
            alert(url);
            xmlhttp=null;
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            else if (window.ActiveXObject){
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (xmlhttp!=null){
              xmlhttp.onreadystatechange=updatePage;
              xmlhttp.open("GET",url,true);
              xmlhttp.send(null);
            }
            else{
              alert("Your browser does not support XMLHTTP.");
            }
        }
        
        function state_Change(){
            if (xmlhttp.readyState==4){
                if (xmlhttp.status==200){
                    updatePage();
                }
                else{
                    alert("Problem retrieving XML data");
                }
            }
        }
        
        function updatePage(){            
            // 清空select2
            while(select2.options[0] != null){
                select2.options[0] = null;
            }
            
            // 设置select2
            var xmlDoc = xmlhttp.responseXML;
            alert(xmlDoc);
            var labelValueBeanElements = xmlDoc.getElementsByTagName("labelValueBean");
          
            for (var i = 0; i &lt; labelValueBeanElements.length; i++){
                var entityValue = xmlDoc.getElementsByTagName("value")[i].childNodes[0].nodeValue;
                var entityLabel = xmlDoc.getElementsByTagName("label")[i].childNodes[0].nodeValue;
                select2.options[i] = new Option(entityLabel,entityValue,false,false);
            }
        }
        &lt;/script&gt;
    &lt;/head&gt;

    &lt;body&gt;
        select1:
        &lt;select id="select1" onchange="loadXMLDoc(this.value)"&gt;
            &lt;option value="1"&gt;1&lt;/option&gt;
            &lt;option value="2"&gt;2&lt;/option&gt;
        &lt;/select&gt;
        &lt;br/&gt;
        select2:
        &lt;select id="select2"&gt;
        &lt;/select&gt;
        &lt;input type="button" value="显示select2的值" onclick="alert(select2.value)"&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre><br /><br /><br /><br /><br /><br />three.jsp<br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/508390#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;%@ page language=</span><span class="string">"java"</span><span> contentType=</span><span class="string">"text/html; charset=UTF-8"</span><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; pageEncoding=<span class="string">"UTF-8"</span><span>%&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span> &lt;%!&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">private</span><span> String fromDB (String valueFromSelect)&nbsp; {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb = <span class="keyword">new</span><span> StringBuffer();&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (valueFromSelect.equals(</span><span class="string">"1"</span><span>)) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;haha&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;哈哈&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;hehe&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;呵呵&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <span class="keyword">else</span><span> </span><span class="keyword">if</span><span> (valueFromSelect.equals(</span><span class="string">"2"</span><span>)) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;heihei&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;嘿嘿&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;gaga&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;嘎嘎&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;woyun&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;我晕&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;123&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;456&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span> sb.toString();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>%&gt;&nbsp; </span></li><li><span>&lt;%&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; String valueFromSelect = request.getParameter(<span class="string">"valueFromSelect"</span><span>);&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; StringBuffer sb = <span class="keyword">new</span><span> StringBuffer();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;?xml version=\"1.0\" encoding=\"gb2312\"?&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;resultFromDB&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(fromDB(valueFromSelect));&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;/resultFromDB&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; response.setHeader(<span class="string">"content-type"</span><span>, </span><span class="string">"text/xml;charset=GBK"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; System.out.println(sb);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; out.println(sb.toString());&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//out.flush();</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; out.close();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; %&gt;&nbsp; </span></li></ol></div><img src ="http://www.blogjava.net/zxb90study/aggbug/384149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:04 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>全选调用的JS函数 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:03:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/539497#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>function selectall()&nbsp;&nbsp; </span></li><li><span>{&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//获取页面上所有的输入元素</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; var a = document.getElementsByTagName(<span class="string">"input"</span><span>);&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//如果全选按钮按上</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(document.getElementById(</span><span class="string">"quanxuanbutton"</span><span>).checked == </span><span class="keyword">true</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">//循环是checkbox类型的，就设置为true</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i=</span><span class="number">0</span><span>; i&lt;a.length; i++)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (a[i].type == </span><span class="string">"checkbox"</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i].checked =<span class="keyword">true</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; }<span class="keyword">else</span><span>{ </span><span class="comment">//如果全选按钮没有按上</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i=</span><span class="number">0</span><span>; i&lt;a.length; i++)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (a[i].type == </span><span class="string">"checkbox"</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i].checked =<span class="keyword">false</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>}&nbsp;&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:03 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dwr 实现二级联动 js </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/540388#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span class="comment">//省市联动 </span><span>&nbsp; </span></li><li><span>var c_cigy = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span class="comment">//记录第二个列表id，以备回调函数用</span><span>&nbsp; </span></li><li><span>var cityItemName = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>function&nbsp; changeCityOyp(province,city,relateItemName) {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; ServerDwrUtil.getCityList(province.value,setCityOption);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//记录二级下拉的 id relateItemName 供回调函数使用</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; cityItemName = relateItemName;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">// 中国 则 二级下拉 不能选择</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(province.value == </span><span class="string">'0001'</span><span>) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(cityItemName).disabled = <span class="keyword">true</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; } <span class="keyword">else</span><span> {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(cityItemName).disabled = <span class="keyword">false</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//省份在一个单元格里，省份前面有个input输入框,得到input对象，再把省份传进去</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; var provinceInput&nbsp; = province.parentNode.firstChild;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//如果省份为空，则单元格为空</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (province.value == </span><span class="string">''</span><span>) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; provinceInput.value = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; provinceInput.value = province.options[province.selectedIndex].text;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>}&nbsp; </span></li><li><span class="comment">// 回调函数 args返回的是list.add(Map) map中{id}，经过 spring配置 对于一些特例返回的Class，且dwr不能识别的，</span><span>&nbsp; </span></li><li><span class="comment">//&lt;/dwr:configuration&gt;</span><span>&nbsp; </span></li><li><span class="comment">// 设置二级下拉列表</span><span>&nbsp; </span></li><li><span>function setCityOption (args) {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; alert(args.toString());&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.removeAllOptions(cityItemName);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.addOptions(cityItemName, [ <span class="string">""</span><span> ]);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//id和name怎么确保的&nbsp;&nbsp; args{[id:xxx,name:yyy],[id:xxx,name:yyyy]}</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.addOptions(cityItemName, args, <span class="string">"id"</span><span>, </span><span class="string">"name"</span><span>);&nbsp; </span></span></li><li><span>}&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:02 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript获取select的值全解 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:01:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html</guid><description><![CDATA[<div class="bar"><div class="tools">Js代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/553960#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-c"><li><span>获取显示的汉字&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>document.getElementById(<span class="string">"bigclass"</span><span>).options[window.document.getElementById(</span><span class="string">"bigclass"</span><span>).selectedIndex].text&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>获取数据库中的id&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).value&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>获取select组分配的索引id&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).selectedIndex&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>例子：&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&lt;select name=<span class="string">"bigclass"</span><span> id=</span><span class="string">"bigclass"</span><span> onChange=</span><span class="string">"javascript:updatePage2();"</span><span>&gt;&nbsp; </span></span></li><li><span>&lt;option value=<span class="string">""</span><span> selected=</span><span class="string">"selected"</span><span>&gt;ajax实验&lt;/option&gt;&nbsp; </span></span></li><li><span>&lt;option value=<span class="string">"4"</span><span>&gt;我适宜市哈&lt;/option&gt;&nbsp; </span></span></li><li><span>&lt;/select&gt;&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>document.getElementById(<span class="string">"bigclass"</span><span>).options[window.document.getElementById(</span><span class="string">"bigclass"</span><span>).selectedIndex].text&nbsp; </span></span></li><li><span>的结果是：我适宜市哈&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).value&nbsp; </span></span></li><li><span>的结果是：4&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).selectedIndex&nbsp; </span></span></li><li><span>的结果是：1&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:01 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>