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

<channel>
	<title>lizongbo 的编程学习</title>
	<atom:link href="http://blog.donews.com/lizongbo/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.donews.com/lizongbo</link>
	<description>编程学习 java为主的web应用开发</description>
	<lastBuildDate>Tue, 16 Oct 2007 01:41:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>blog 搬家了</title>
		<link>http://blog.donews.com/lizongbo/archive/2007/10/16/1219709.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2007/10/16/1219709.aspx#comments</comments>
		<pubDate>Tue, 16 Oct 2007 01:41:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Apache commons Configuration 文档翻译]]></category>
		<category><![CDATA[Think in java 阅读笔记]]></category>
		<category><![CDATA[codesamples ]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dev config ]]></category>
		<category><![CDATA[java code util ]]></category>
		<category><![CDATA[javalibs ]]></category>
		<category><![CDATA[javascript code util ]]></category>
		<category><![CDATA[others ]]></category>
		<category><![CDATA[web dev]]></category>
		<category><![CDATA[weblinks ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2007/10/16/1219709.aspx</guid>
		<description><![CDATA[
新注册了个独立域名，使用独立的blog了。

http://618119.com

rss订阅地址： http://feed.feedsky.com/lizongbo

从最早的 http://blog.csdn.net/lizongbo,

到 http://blog.donews.com/lizongbo

再到http://www.blogjava.net/lizongbo

现在终于拥有自己的域名和独立的blog了。





]]></description>
			<content:encoded><![CDATA[<p>新注册了个独立域名，使用独立的blog了。</p>
<p>http://618119.com</p>
<p>rss订阅地址： http://feed.feedsky.com/lizongbo</p>
<p>从最早的 http://blog.csdn.net/lizongbo,</p>
<p>到 http://blog.donews.com/lizongbo</p>
<p>再到http://www.blogjava.net/lizongbo</p>
<p>现在终于拥有自己的域名和独立的blog了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2007/10/16/1219709.aspx/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一个正则表达式。</title>
		<link>http://blog.donews.com/lizongbo/archive/2006/02/18/731441.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2006/02/18/731441.aspx#comments</comments>
		<pubDate>Sat, 18 Feb 2006 05:58:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[java code util ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2006/02/18/731441.aspx</guid>
		<description><![CDATA[用于字符串内容提取。

]]></description>
			<content:encoded><![CDATA[<p>用于字符串内容提取。</p>
</p>
<p>import java.util.regex.*;</p>
<p>public class MyDemo {</p>
<p><br/>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str = &quot;[img]http://xxxxx.com/xxxx1.jpg[/img]&quot; +<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;[img]http://xxxxx.com/xxxx2.jpg [/img]&quot; +<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;[img]http://xxxxx.com/xxxx3.jpg [/img]&quot; +<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;[img]http://xxxxx.com/xxxx4.jpg [/img]&quot; +<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;[img]http://xxxxx.com/xxxx5.jpg [/img]&quot; +<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;[img]http://xxxxx.com/xxxx6.jpg [/img]&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(str.replaceAll(&quot;<a href="file://\\[img](.*?)\\[/img">\\[img](.*?)\\[/img</a>]&quot;, &quot;$1\n&quot;));<br/>&nbsp;&nbsp;&nbsp; }<br/>}</p>
<p><br/></p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2006/02/18/731441.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>struts validator的注意事项</title>
		<link>http://blog.donews.com/lizongbo/archive/2006/02/10/721217.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2006/02/10/721217.aspx#comments</comments>
		<pubDate>Fri, 10 Feb 2006 07:34:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2006/02/10/721217.aspx</guid>
		<description><![CDATA[struts 与commons validator版本搭配不当的时候会导致js出错(生成的js里没有retrieveFormName方法)，
或者是validator-rules里的arg里的 resource="true" bundle="someRes"不起作用
]]></description>
			<content:encoded><![CDATA[<p>struts validator的注意事项<br/>struts 与commons validator版本搭配不当的时候会导致js出错(生成的js里没有retrieveFormName方法)，<br/>或者是validator-rules里的arg里的 resource=&quot;true&quot; bundle=&quot;someRes&quot;不起作用<br/>(比如如下配置<br/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>struts-config里<br/>&nbsp; &lt;message-resources parameter=&quot;ApplicationResources&quot; /&gt;<br/>&nbsp; &lt;message-resources key=&quot;testrs&quot; parameter=&quot;com.lizongbo.localstring.TestRs&quot; /&gt;</p>
<p>validator.xml里<br/>&nbsp;&nbsp;&nbsp; &lt;form name=&quot;EditActionForm&quot;&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;field property=&quot;rowid&quot; depends=&quot;required&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg key=&quot;EditActionForm.rowid&quot; position=&quot;0&quot; resource=&quot;true&quot;/&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/field&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;field property=&quot;msgid&quot; depends=&quot;required&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg key=&quot;msgid&quot; position=&quot;0&quot; resource=&quot;true&quot; bundle=&quot;testrs&quot;/&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/field&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br/>ApplicationResources.properties中<br/>EditActionForm.rowid = 测试id<br/>com/lizongbo/localstring/TestRs.properties中<br/>msgid =&nbsp; 消息编号<br/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br/>这个时候rowid的资源捆绑会成功，而msgid的资源捆绑确是无效的,<br/>jb2006自带在struts1.2.4版本上会导致国际化版本校验捆绑不了资源。),<br/>经过试验,成功解决这两个问题的版本搭配是使用struts1.2.8版本和commons validator 1.2.0版本结合。<br/>，<br/>2.正确的操作如下：<br/>a.下载 <br/>struts1.2.8<br/><a href="http://www.eu.apache.org/dist/struts/binaries/struts-1.2.8-bin.zip">http://www.eu.apache.org/dist/struts/binaries/struts-1.2.8-bin.zip</a><br/><a href="http://www.eu.apache.org/dist/struts/source/struts-1.2.8-src.zip">http://www.eu.apache.org/dist/struts/source/struts-1.2.8-src.zip</a></p>
<p>commons validator1.2<br/><a href="http://www.eu.apache.org/dist/jakarta/commons/validator/binaries/commons-validator-1.2.0.zip">http://www.eu.apache.org/dist/jakarta/commons/validator/binaries/commons-validator-1.2.0.zip</a><br/><a href="http://www.eu.apache.org/dist/jakarta/commons/validator/source/commons-validator-1.2.0-src.zip">http://www.eu.apache.org/dist/jakarta/commons/validator/source/commons-validator-1.2.0-src.zip</a></p>
<p>用commons-validator-1.2.0.zip\commons-validator-1.2.0\commons-validator-1.2.0.jar<br/>替换D:\Borland\JBuilder2006\thirdparty\jakarta-struts-1.2-lib\commons-validator.jar,<br/>用struts-1.2.8-bin.zip\struts-1.2.8-bin\lib\struts.jar替换<br/>D:\Borland\JBuilder2006\thirdparty\jakarta-struts-1.2-lib\struts.jar，<br/>用struts-1.2.8-bin.zip\struts-1.2.8-bin\lib\validator-rules.xml替换<br/>D:\Borland\JBuilder2006\thirdparty\jakarta-struts-1.2-lib\validator-rules.xml</p>
<p>编辑D:\Borland\JBuilder2006\thirdparty\jakarta-struts-1.2-lib\validation.xml,修改后内容如下：<br/>(dtd使用1.2.0版本的)<br/>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br/>&lt;!DOCTYPE form-validation PUBLIC<br/>&nbsp;&nbsp;&nbsp;&nbsp; &quot;-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.2.0//EN&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &quot;<a href="http://jakarta.apache.org/commons/dtds/validator_1_2_0.dtd">http://jakarta.apache.org/commons/dtds/validator_1_2_0.dtd</a>&quot;&gt;<br/>&lt;form-validation&gt;<br/>&lt;/form-validation&gt;<br/>(下面这步好像可以不用，如果没有发现validator_1_2_0.dtd，则进行这个操作)<br/>下载<a href="http://jakarta.apache.org/commons/dtds/validator_1_2_0.dtd">http://jakarta.apache.org/commons/dtds/validator_1_2_0.dtd</a>并将它保存到<br/>D:\Borland\JBuilder2006\lib\dtd\apache\下面。</p>
<p>(顺便建议把D:\Borland\JBuilder2006\thirdparty\jakarta-struts-1.2-lib\下的commons*.jar全部升级为当前最新的版本)<br/>至此，在jbuilder里新建的使用struts1.2的webapp都可以正常的使用validator了。</p>
<p><br/>注意：struts的validator对消息的国际化是根据formset来识别的<br/>因此假设需要支持zh_CN和en以及zh_HK。<br/>因此需要如下配置，(formset内的form设置可以复制多份即可)<br/>validator-test.xml<br/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>&lt;form-validation&gt;<br/>&nbsp; &lt;formset&gt;&lt;!&#8211;这个是默认的必须的&#8211;&gt;<br/>&nbsp; &lt;/formset&gt;<br/>&nbsp; &lt;formset language=&quot;zh&quot;&gt;&lt;!&#8211;这个是zh的&#8211;&gt;<br/>&nbsp; &lt;/formset&gt;<br/>&nbsp; &lt;formset language=&quot;en&quot;&gt;&lt;!&#8211;这个是en的&#8211;&gt;<br/>&nbsp; &lt;/formset&gt;<br/>&nbsp; &lt;formset language=&quot;zh&quot; country=&quot;CN&quot;&gt;&lt;!&#8211;这个是zh_CN的&#8211;&gt;<br/>&nbsp; &lt;/formset&gt;<br/>&nbsp; &lt;formset language=&quot;zh&quot; country=&quot;HK&quot;&gt;&lt;!&#8211;这个是zh_HK的&#8211;&gt;<br/>&nbsp; &lt;/formset&gt;<br/>&lt;/form-validation&gt;</p>
<p>同时注意，如果指定了一个Locale，这个locale是当然web应用没有支持的语言，<br/>比如用户选择了locale为fr，此时服务器会使用一个默认的，<br/>但是这个默认的不是我们所认为对应的ApplicationResources不带任何后缀的资源。<br/>而好像是request.getLocale得到的，或者是jdk自己的。<br/>（我的测试情况如下，formset里只支持默认，zh,zh_CN,zh_HK,当我选择locale为en_GB的时候<br/>，页面返回的消息是zh版本的，而我的浏览器是zh的，jdk也是zh的，我没有去看struts的src了，<br/>因此无从判定struts到底依据的是哪一个）</p>
<p>webapp里使用struts validator。<br/>FormBean里, import org.apache.struts.validator.ValidatorForm; 继承extends ValidatorForm 。</p>
<p>用最新版本的commons validator ,把js单独提取为：commonsvalidator.js,然后使用下面这样的代码:<br/>jsp里<br/>显示出错信息: <br/>&lt;logic:messagesPresent&gt;<br/>&nbsp; &lt;bean:message key=&quot;errors.header&quot;/&gt;<br/>&nbsp; &lt;ul&gt;<br/>&nbsp; &lt;html:messages id=&quot;error&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;bean:write name=&quot;error&quot;/&gt;&lt;/li&gt;<br/>&nbsp; &lt;/html:messages&gt;<br/>&nbsp; &lt;/ul&gt;&lt;hr&gt;<br/>&lt;/logic:messagesPresent&gt;</p>
<p>引用js<br/>&lt;script type=&quot;text/javascript&quot; language=&quot;Javascript1.1&quot; src=&quot;&lt;%=request.getContextPath()%&gt;/commonsvalidator.js&quot;/&gt; <br/>&lt;html:javascript formName=&quot;myActionForm&quot; dynamicJavascript=&quot;true&quot; staticJavascript=&quot;false&quot;/&gt;<br/>html form里 &lt;html:form&nbsp; onsubmit=&quot;return validateMyActionForm(this);&quot;(注意大小写变化：myActionForm&#8211;&gt;validateMyActionForm);<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2006/02/10/721217.aspx/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>tomcat 5.5 的The Apache Tomcat Native library which allows optimal performance 的解决</title>
		<link>http://blog.donews.com/lizongbo/archive/2006/01/26/709282.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2006/01/26/709282.aspx#comments</comments>
		<pubDate>Thu, 26 Jan 2006 11:54:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[dev config ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2006/01/26/709282.aspx</guid>
		<description><![CDATA[2006-1-26 19:44:11 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path]]></description>
			<content:encoded><![CDATA[<p>Tomcat启动的时候出现下面这样的提示：</p>
<p>2006-1-26 19:44:11 org.apache.catalina.core.AprLifecycleListener lifecycleEvent<br/>信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.5.0_05\bin;.;C:\WINDOWS\system32;C:\WINDOWS;d:\ruby\bin;.;..;D:\Java\jrockit-R26.0.0-jdk</p>
</p>
<p>实际这是建议使用apache的apr。</p>
<p>如果想使用apr的话， 实际操作很简单，</p>
<p>下载 <a href="http://tomcat.heanet.ie/native/1.1.1/binaries/win32/tcnative-1.dll">http://tomcat.heanet.ie/native/1.1.1/binaries/win32/tcnative-1.dll</a></p>
<p>将这个文件复制到C:\WINDOWS\system32\下面</p>
<p>然后重新启动tomcat，就会发现tomcat 的控制台信息为：<br/>2006-1-26 19:48:42 org.apache.coyote.http11.Http11AprProtocol init<br/>信息: Initializing Coyote HTTP/1.1 on http-9080</p>
</p>
<p>详情见 <a href="http://tomcat.apache.org/tomcat-5.5-doc/apr.html">http://tomcat.apache.org/tomcat-5.5-doc/apr.html</a></p>
<p><a href="http://www.google.com/search?hl=zh-CN&amp;newwindow=1&amp;q=The+Apache+Tomcat+Native+library+which+allows+optimal+performance&amp;btnG=%E6%90%9C%E7%B4%A2&amp;lr">http://www.google.com/search?hl=zh-CN&amp;newwindow=1&amp;q=The+Apache+Tomcat+Native+library+which+allows+optimal+performance&amp;btnG=%E6%90%9C%E7%B4%A2&amp;lr</a>=</p>
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2006/01/26/709282.aspx/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>hibernate　中对多张同结构表分页查询的设计。</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/12/19/663515.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/12/19/663515.aspx#comments</comments>
		<pubDate>Mon, 19 Dec 2005 06:58:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[java code util ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/12/19/663515.aspx</guid>
		<description><![CDATA[目前代码功能已经实现，但是存在以下几个缺陷

1.只能够是单表查询，不支持 select * from log20050* ,userinfo  where 1=1 这样的语句。这个缺陷可以后期处理掉，目前暂时没这个必要

2.返回的ｌｉｓｔ中是全部的字段，目前只支持select * ，这个也可以处理掉。

3.字段排序只能够在每张表中单独进行，比如log200501里排序完毕，然后log200502里排序完毕，但是01和０２的表结果集合在一起却不是排好序的。
]]></description>
			<content:encoded><![CDATA[<p>在实际应用中，经常有如下表：</p>
<p>log200501,log200502,log200503,log200504&#8230;&#8230;..一次每月一张表，</p>
<p>这些表结构都是相同的，且每个月产生一张。</p>
<p>然后又如下的查询条件，用户选择2005年７月到11月进行查询。要求从多张表中返回符合条件的记录，并且分页显示。</p>
<p>由于表是在动态增长的，因此在ｈｉｂｅｒｎａｔｅ里不可能对每张表进行映射。</p>
<p>通过构造视图，然后对视图进行映射的方法也不太妥当。因为创建视图的ｓｑｌ不能够动态改变，并且效率也不高。</p>
<p>打算利用DetachedCriteria也没找到怎么样动态映射到同结构的表进行查询。</p>
<p>因此封装了一个方法：</p>
<p>&nbsp;&nbsp;&nbsp; /**<br/>&nbsp;&nbsp;&nbsp;&nbsp; * 对多张同结构的表进行分页查询<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @param c Class 需要转换出来的类<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @param tablenames String[] 多张表名<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @param whereSql String where条件 &quot; where&nbsp; aa= ? and&nbsp; bb =? &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @param values Object[] 参数值<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @param page Pagination 分页信息<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @return List<br/>&nbsp;&nbsp;&nbsp;&nbsp; */<br/>&nbsp;&nbsp;&nbsp; public List search(final Class c, final String[] tablenames,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String whereSql,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final Object[] values, final Pagination page) {</p>
<p>//先计算所有的表中符合条件的记录数。</p>
<p>//然后根据分页信息计算出需要查询数据的表，并计算好各表中的起始位置和记录条数</p>
<p>//在查询各个需要提供数据的表，将结果集合并</p>
<p>//以一个ｌｉｓｔ返回出去。</p>
<p>}</p>
<p>调用流程如下，根据用户选择的时间范围得到需要涉及到查询的表名，然后再加上相关参训条件，调用该方法即可分业查询。</p>
<p>目前代码功能已经实现，但是存在以下几个缺陷</p>
<p>1.只能够是单表查询，不支持 select * from log20050* ,userinfo&nbsp; where 1=1 这样的语句。这个缺陷可以后期处理掉，目前暂时没这个必要</p>
<p>2.返回的ｌｉｓｔ中是全部的字段，目前只支持select * ，这个也可以处理掉。</p>
<p>3.字段排序只能够在每张表中单独进行，比如log200501里排序完毕，然后log200502里排序完毕，但是01和０２的表结果集合在一起却不是排好序的。</p>
<p>这就是无法对所有符合条件的记录进行排序，这个不好做，数据库基础不扎实：（</p>
<p>或许应该有办法可以解决。</p>
<p>当然，应付目前的应用用来做日志类查询已经基本满足需求。</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/12/19/663515.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>根据数据库数据来关联strust下拉框的简单捆绑做法</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/11/16/629033.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/11/16/629033.aspx#comments</comments>
		<pubDate>Wed, 16 Nov 2005 09:15:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[java code util ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/11/16/629033.aspx</guid>
		<description><![CDATA[                   1. 先写一个存放选项的bean:2.生成下拉列表:3.放到session中,放到request里也可以4.网页上的使用]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 先写一个存放选项的bean:</p>
<p>package com.lizongbo.common.basic;</p>
<p>public class HtmlSelectStruct {</p>
<p>&nbsp; private String label;<br/>&nbsp; private String value;<br/>&nbsp; public HtmlSelectStruct() {<br/>&nbsp; }</p>
<p>&nbsp; public HtmlSelectStruct(String label, String value) {<br/>&nbsp;&nbsp;&nbsp; this.setLabel(label);<br/>&nbsp;&nbsp;&nbsp; this.setValue(value);<br/>&nbsp; }</p>
<p>&nbsp; public String getLabel() {<br/>&nbsp;&nbsp;&nbsp; return label;<br/>&nbsp; }</p>
<p>&nbsp; public void setLabel(String label) {<br/>&nbsp;&nbsp;&nbsp; this.label = label;<br/>&nbsp; }</p>
<p>&nbsp; public String getValue() {<br/>&nbsp;&nbsp;&nbsp; return value;<br/>&nbsp; }</p>
<p>&nbsp; public void setValue(String value) {<br/>&nbsp;&nbsp;&nbsp; this.value = value;<br/>&nbsp; }<br/>}</p>
<p><br/>2.生成下拉列表:<br/>例如<br/>&nbsp;&nbsp;&nbsp; public List listAllUserHtmlSelect() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List l = listAllUser();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List rs = new java.util.ArrayList();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; l.size(); i++) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User u = (User) l.get(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HtmlSelectStruct hsall = new HtmlSelectStruct(u.getid()+&quot; / &quot;+u.getName(),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String.valueOf(u.getid()));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.add(hsall);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return rs;</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>3.放到session中,放到request里也可以</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute(&quot;userHtmlSelect&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; srl.listAllUserHtmlSelect());<br/>//如果是null的,页面上会报错,这点不太爽</p>
<p>4.网页上的使用</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:select property=&quot;userid&quot;&gt;</p>
<p>&lt;html:option value=&quot;&quot;&gt;不选择用户&lt;/html:option&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:options collection=&quot;userHtmlSelect&quot; property=&quot;value&quot; labelProperty=&quot;label&quot;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/html:select&gt;</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/11/16/629033.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jbhuilder 2006重要配置入门</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/11/04/614876.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/11/04/614876.aspx#comments</comments>
		<pubDate>Fri, 04 Nov 2005 03:55:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[dev config ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/11/04/614876.aspx</guid>
		<description><![CDATA[配置jb2006一些重要参数.]]></description>
			<content:encoded><![CDATA[<p>Jbuilder开发</p>
<p>Jbuilder重要参数设置.</p>
<p>1.在jbuilder2006/bin/jdk.config 最后以行加上 vmparam -Dfile.encoding=GBK<br/>2.在jbuilder2006/bin/jbuilder.config&nbsp; 59行 改为：socket 88888<br/>3.在jbuilder2006/bin/jbuilder.config最后一行加上<br/>&nbsp; vmparam -Dprimetime.editor.useVariableWidthFont=true</p>
<p>结合vss开发<br/>1.先从vss上取下工程<br/>在Jbuilder中,菜单-〉File&#8217;new&#8217;在Object Gallery窗口中选中左边的Project，然后选Pull Project From VSS,然后点&quot;OK&quot;.如下图：<br/>&nbsp;<br/>2.接下来的窗口中，Directory填<a href="file://\\192.168.9.1\Source">\\192.168.9.1\Source</a><br/>&nbsp;<br/>3.填写vss的登录账号<br/>&nbsp;<br/>4.选择即将导出的工程目录,如下图：：<br/>&nbsp;<br/>5.选择保存到本地的目录<br/>&nbsp;<br/>6.在jbuilder2006中进行相关参数配置(这几个设置很重要，设置好之后可以减少很多不必要的麻烦)：<br/>a.设置工程的编码。<br/>打开工程，主菜单-〉Project&#8217;Project Properties&#8217;General&#8217;Encoding,大家的编码一定要一致，避免乱码现象出现，因此建议统一设置为GBK.<br/>&nbsp;<br/>b.设置需要自动复制的资源，由于工程中用到了xml，并且需要将其自动复制到classes目录下。<br/>请将xml文件设置为Copy.记着要点ok 噢：）<br/>&nbsp;</p>
<p>c.设置class的生成版本<br/>Taget VM要设置为1.4版本。<br/>&nbsp;<br/>d.设置编译选项<br/>把Generate source to output path的钩取掉<br/>把Check JSPs for errors at build-time的钩取掉，这样可以加快编译调试的速度。<br/>&nbsp;<br/>e.设置web应用中的资源复制。<br/>选中Web App，然后点右键&#8217;Properties&hellip;<br/>&nbsp;<br/>设置content，选择最上面的 Include all classes and resources<br/>&nbsp;</p>
<p>接下来就可以在工程中添加自己的模块了。<br/>这样就可以在jbuilder里直接点右键队文件进行check add ,check in 和checkout了 .<br/>注意jbuilder2006里与vss的状态同步没有jb2005好，如果用vss浏览器进行的check in 和out操作，在jbuilder2006里不能够及时体现。因此大家要点&quot;刷新&quot;图标进行状态同步<br/>如图：<br/>&nbsp;</p>
<p><br/>使用tomcat5.0<br/>由于jbuilder2006中的tomcat5.5在部署的时候会自动复制多余的jar<br/>导致web-inf/lib/下出现了jsp-api.jar和,serverlet-api.jar，这样会引起Failed to load or instantiate TagExtraInfo class:org.Apache.struts.taglib.html.MessagesTei之类的错误，因此在jbuilder中调试的话，可以先选择使用Tomcat5.0<br/>在jb2006例添加server tomcat5.0的步骤如下。<br/>1.&nbsp;从jbuilder中提取jakarta-tomcat-5.0.27<br/>a.&nbsp;复制D:\borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27为<br/>D:\borland\JBuilder2006\thirdparty\jakarta-tomcat-5.0.27<br/>我已经把它压缩好放在了<a href="file://\\192.168.9.1\jakarta-tomcat-5.0.27.rar">\\192.168.9.1\jakarta-tomcat-5.0.27.rar</a>，复制过来解压到D:\borland\JBuilder2006\thirdparty\也可以。<br/>b.&nbsp;添加 server.<br/>主菜单&#8217;Enterprise&#8217;configure Servers &#8216;选中Tomcat5.5，然后点左下角的Copy.<br/>&nbsp;<br/>名字依然为Tomcat,版本改为5.0<br/>如图：<br/>&nbsp;<br/>如图,将tomcat5.0的home directory 设置为：D:\borland\JBuilder2006\thirdparty\jakarta-tomcat-5.0.27<br/>这样就可以在jb2006使用tomcat5.0了。</p>
<p>&nbsp;</p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/11/04/614876.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>toString方法的强大实现</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/10/29/607466.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/10/29/607466.aspx#comments</comments>
		<pubDate>Sat, 29 Oct 2005 14:25:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[java code util ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/10/29/607466.aspx</guid>
		<description><![CDATA[平时调试的时候，经常需要把一个Object里的各成员变量输出到日志来查看

但是很多javabean没有实现toString方法，或者实现的根本不够用。

因此，需要一个方便的toString来查看对象内各成员变量的值。

以前用的System.out.println("对象内容为："+org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(obj) );

但是这个有缺陷，不能够输出集合和数组，
]]></description>
			<content:encoded><![CDATA[<p>平时调试的时候，经常需要把一个Object里的各成员变量输出到日志来查看</p>
<p>但是很多javabean没有实现toString方法，或者实现的根本不够用。</p>
<p>因此，需要一个方便的toString来查看对象内各成员变量的值。</p>
<p>以前用的是log.debug(&quot;对象内容为：&quot;+org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(obj) );</p>
<p>但是这个有缺陷，不能够输出集合和数组，</p>
<p>于是想到了个好办法</p>
<p>下载：</p>
<p><a href="http://dist.codehaus.org/xstream/distributions/xstream-1.1.2.zip">http://dist.codehaus.org/xstream/distributions/xstream-1.1.2.zip</a></p>
<p>需要输出调试的地方就用：</p>
<p>log.debug(&quot;对象内容为：&quot;+new XStream().toXML(obj) );</p>
<p>或者给javabean加上</p>
<p>&nbsp;&nbsp;&nbsp; public String toString() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XStream xstream = new XStream();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String xml = xstream.toXML(this);<br/>&nbsp;&nbsp;&nbsp; };</p>
<p>基本上决大部分的对象都可以搞定了，呵呵</p>
<p>当然可以把xstream 只生成一个实例，那样效率更高</p>
<p><br/>用来调试输出hibernate的查询结果，po或者list都超级方便。</p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/10/29/607466.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>winnt4.0上面配置tomcat5.5.10的注意事项以及多个实例的启动</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/10/29/607458.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/10/29/607458.aspx#comments</comments>
		<pubDate>Sat, 29 Oct 2005 14:21:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[dev config ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/10/29/607458.aspx</guid>
		<description><![CDATA[winnt4.0上面配置tomcat5.5.10的注意事项

1.安装方法如下，直接复制在win2000下的jdk1.4和tomcat5.5.10的文件夹到winnt4.0
2.把文件夹名字改短,把j2sdk1.4.2_04改成jdk，jakarta-tomcat-5.5.10改成web，新文件夹名字必须在8个字符内。
3.winnt下获取环境变量好像有问题，因此需要编辑web\bin\startup.bat
在开头加上
set JAVA_HOME=c:\j2sdk
set CATALINA_HOME=c:\web
4.然后启动，一切ok了。

同一台机器上配置运行Tomcat集群的简便方法(节选)

然后启动tomcat的时候，通过命令行参数来启动。
比如：
 
]]></description>
			<content:encoded><![CDATA[<p>winnt4.0上面配置tomcat5.5.10的注意事项</p>
<p>1.安装方法如下，直接复制在win2000下的jdk1.4和tomcat5.5.10的文件夹到winnt4.0<br/>2.把文件夹名字改短,把j2sdk1.4.2_04改成jdk，jakarta-tomcat-5.5.10改成web，新文件夹名字必须在8个字符内。<br/>3.winnt下获取环境变量好像有问题，因此需要编辑web\bin\startup.bat<br/>在开头加上<br/>set JAVA_HOME=c:\j2sdk<br/>set CATALINA_HOME=c:\web<br/>4.然后启动，一切ok了。</p>
</p>
<p>同一台机器上配置运行Tomcat集群的简便方法(节选)</p>
<p>然后启动tomcat的时候，通过命令行参数来启动。<br/>比如：<br/>&nbsp;<br/>D:\JAKART~1.10\bin&gt;catalina run -config D:\jakarta-tomcat-5.5.10\conf\server80.xml<br/>D:\JAKART~1.10\bin&gt;catalina run -config D:\jakarta-tomcat-5.5.10\conf\server8080.xml<br/>D:\JAKART~1.10\bin&gt;catalina run -config D:\jakarta-tomcat-5.5.10\conf\server9080.xml<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/10/29/607458.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jbuilder中实用的TCP Monitor</title>
		<link>http://blog.donews.com/lizongbo/archive/2005/09/28/570830.aspx</link>
		<comments>http://blog.donews.com/lizongbo/archive/2005/09/28/570830.aspx#comments</comments>
		<pubDate>Wed, 28 Sep 2005 06:06:00 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[dev config ]]></category>

		<guid isPermaLink="false">http://blog.donews.com/lizongbo/archive/2005/09/28/570830.aspx</guid>
		<description><![CDATA[Jbuilder的TCP Monitor的非常实用.]]></description>
			<content:encoded><![CDATA[<p>Jbuilder的TCP Monitor是用监视端口并转发数据的,</p>
<p>并且把客户请求和服务端请求的数据记录下来.</p>
<p>用它来分析http请求和回复非常方便,</p>
<p>而我巧妙的吧它用来做下面一件事情.</p>
<p><a href="http://torrez.net/projects/konstructor/Konstructor.exe">http://torrez.net/projects/konstructor/Konstructor.exe</a></p>
<p>是一个xmlrpc调试工具,美中不足的地方,是无法设置端口,</p>
<p>只能够用80端口访问,于是突然想到用TCP Monitor来进行端口转发.</p>
<p>用 TCP Monitor 监听80端口,并转发数据到远程的服务和指定端口.</p>
<p>呵呵</p>
<p>后来想到其实连这个调试工具都省了,直接用TCP Monitor来监视xmlrpc调用.</p>
</p>
<p>当然,也可以用IE的插件 ieHTTPHeaders 来分析http请求,但是ieHTTPHeaders 不记录content内容:(</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/lizongbo/archive/2005/09/28/570830.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
