﻿<?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-狐狸&amp;花生-文章分类-OtherJava</title><link>http://www.blogjava.net/czcode/category/17964.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 07:49:01 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 07:49:01 GMT</pubDate><ttl>60</ttl><item><title>Struts中常见错误</title><link>http://www.blogjava.net/czcode/articles/85044.html</link><dc:creator>崔振</dc:creator><author>崔振</author><pubDate>Sat, 02 Dec 2006 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/czcode/articles/85044.html</guid><wfw:comment>http://www.blogjava.net/czcode/comments/85044.html</wfw:comment><comments>http://www.blogjava.net/czcode/articles/85044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/czcode/comments/commentRss/85044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/czcode/services/trackbacks/85044.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000080">以下所说的struts-config.xml和ApplicationResources.properties等文件名是缺省时使用的，如果你使用了多模块，或指定了不同的资源文件名称，这些名字要做相应的修改。</font>
		</p>
		<p>
				<font color="#000080">1、“No bean found under attribute key XXX”<br />在struts-config.xml里定义了一个ActionForm，但type属性指定的类不存在，type属性的值应该是Form类的全名。或者是，在Action的定义中，name或attribute属性指定的ActionForm不存在。</font>
		</p>
		<p>
				<br />
				<font color="#000080">2、“Cannot find bean XXX in any scope”<br />在Action里一般会request.setAttribute()一些对象，然后在转向的jsp文件里（用tag或request.getAttribute()方法）得到这些对象并显示出来。这个异常是说jsp要得到一个对象，但前面的Action里并没有将对象设置到request（也可以是session、servletContext）里。<br />可能是名字错了，请检查jsp里的tag的一般是name属性，或getAttribute()方法的参数值；或者是Action逻辑有问题没有执行setAttribute()方法就先转向了。<br />还有另外一个可能，纯粹是jsp文件的问题，例如&lt;logic:iterate&gt;会指定一个id值，然后在循环里&lt;bean:write&gt;使用这个值作为name的值，如果这两个值不同，也会出现此异常。（都是一个道理，request里没有对应的对象。）</font>
		</p>
		<p>
				<br />
				<font color="#000080">3、“Missing message for key "XXX"”<br />缺少所需的资源，检查ApplicationResources.properties文件里是否有jsp文件里需要的资源，例如：</font>
		</p>
		<p>
				<br />
				<font color="#000080">&lt;bean:message key="msg.name.prompt"/&gt;</font>
		</p>
		<p>
				<font color="#000080">这行代码会找msg.name.prompt资源，如果AppliationResources.properties里没有这个资源就会出现本异常。在使用多模块时，要注意在模块的struts-config-xxx.xml里指定要使用的资源文件名称，否则当然什么资源也找不到，这也是一个很容易犯的错误。</font>
		</p>
		<p>
				<font color="#000080">4、“No getter method for property XXX of bean teacher”<br />这条异常信息说得很明白，jsp里要取一个bean的属性出来，但这个bean并没有这个属性。你应该检查jsp中某个标签的property属性的值。例如下面代码中的cade应该改为code才对：</font>
		</p>
		<p>
				<font color="#000080">&lt;bean:write name="teacher" property="cade" filter="true"/&gt;</font>
		</p>
		<p>
				<br />
				<font color="#000080">5、“Cannot find ActionMappings or ActionFormBeans collection”<br />待解决。</font>
		</p>
		<p>
				<font color="#000080">6、“Cannot retrieve mapping for action XXX”<br />在.jsp的&lt;form&gt;标签里指定action='/XXX'，但这个Action并未在struts-config.xml里设置过。</font>
		</p>
		<p>
				<font color="#000080">7、HTTP Status 404 - /xxx/xxx.jsp<br />Forward的path属性指向的jsp页面不存在，请检查路径和模块，对于同一模块中的Action转向，path中不应包含模块名；模块间转向，记住使用contextRelative="true"。</font>
		</p>
		<p>
				<font color="#000080">8、没有任何异常信息，显示空白页面<br />可能是Action里使用的forward与struts-config.xml里定义的forward名称不匹配。</font>
		</p>
		<p>
				<br />
				<font color="#000080">9、“The element type "XXX" must be terminated by the matching end-tag "XXX".”<br />这个是struts-config.xml文件的格式错误，仔细检查它是否是良构的xml文件，关于xml文件的格式这里就不赘述了。</font>
		</p>
		<p>
				<font color="#000080">10、“Servlet.init() for servlet action threw exception”<br />一般出现这种异常在后面会显示一个关于ActionServlet的异常堆栈信息，其中指出了异常具体出现在代码的哪一行。我曾经遇到的一次提示如下：</font>
		</p>
		<p>
				<font color="#000080">java.lang.NullPointerException<br />    at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)<br />    at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)</font>
		</p>
		<p>
				<br />
				<font color="#000080">为解决问题，先下载struts的源码包，然后在ActionServlet.java的第1003行插入断点，并对各变量进行监视。很丢人，我竟然把struts-config.xml文件弄丢了，因此出现了上面的异常，应该是和CVS同步时不小心删除的。</font>
		</p>
		<p>
				<font color="#000080">11、“Resources not defined for Validator”<br />这个是利用Validator插件做验证时可能出现的异常，这时你要检查validation.xml文件，看里面使用的资源是否确实有定义，form的名称是否正确，等等。</font>
		</p>
<img src ="http://www.blogjava.net/czcode/aggbug/85044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/czcode/" target="_blank">崔振</a> 2006-12-02 16:31 <a href="http://www.blogjava.net/czcode/articles/85044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式18种</title><link>http://www.blogjava.net/czcode/articles/85043.html</link><dc:creator>崔振</dc:creator><author>崔振</author><pubDate>Sat, 02 Dec 2006 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/czcode/articles/85043.html</guid><wfw:comment>http://www.blogjava.net/czcode/comments/85043.html</wfw:comment><comments>http://www.blogjava.net/czcode/articles/85043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/czcode/comments/commentRss/85043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/czcode/services/trackbacks/85043.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、设计模式之Flyweight——打球篇								   周末没事，和朋友约好去体育馆（Gymnasium）打球，这个体育馆（Gymnasium）提供各种球种，因为我们人多，因此选择了羽毛球（badminton），兵乓球（pingpangball）、排球（vollyball）等球种，我们首先要填写选球清单（playBallList），然后去器材部领球。下面我们看看该如何实现这个过...&nbsp;&nbsp;<a href='http://www.blogjava.net/czcode/articles/85043.html'>阅读全文</a><img src ="http://www.blogjava.net/czcode/aggbug/85043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/czcode/" target="_blank">崔振</a> 2006-12-02 16:27 <a href="http://www.blogjava.net/czcode/articles/85043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Junit</title><link>http://www.blogjava.net/czcode/articles/85041.html</link><dc:creator>崔振</dc:creator><author>崔振</author><pubDate>Sat, 02 Dec 2006 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/czcode/articles/85041.html</guid><wfw:comment>http://www.blogjava.net/czcode/comments/85041.html</wfw:comment><comments>http://www.blogjava.net/czcode/articles/85041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/czcode/comments/commentRss/85041.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/czcode/services/trackbacks/85041.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Arial" color="#66ff33" size="2">
						<font color="#000033">JUnit是一个OpenSource的软件。<br />下载junit.jar。将这个jar文件加入你的CLASSPATH系统变量（获IDE CLASSPATH路径）就OK了。<br />编写测试类的基本步骤：<br />1&gt; 扩展TestCase类；<br />2&gt; 覆盖runTest()方法（可选）；<br />3&gt; 写一些testXXXXX()方法；<br />如果你要对一个或若干个的类执行多个测试，该怎么办？JUnit对此有特殊的解决办法。<br />如果需要在一个或若干个的类执行多个测试，这些类就成为了测试的context。<br />在JUnit中被称为Fixture。<br /><br />protected void setUp() throws java.lang.Exception<br />覆盖setUp()方法，初始化所有测试的Fixture<br />protected void tearDown() throws java.lang.Exception<br />覆盖tearDown() 释放你在setUp()中分配的永久性资源，<br />当JUnit执行测试时，它在执行每个testXXXXX()方法前都调用setUp()，而在执行每个testXXXXX()方法后都调用tearDown()方法，由此保证了测试不会相互影响。<br /><br />JUnit提供了三种界面来运行测试 <br />[Text UI] junit.textui.TestRunner<br />[AWT UI] junit.awtui.TestRunner<br />[Swing UI] junit.swingui.TestRunner<br /><br />界面很简单，键入类名－testClass。或在启动UI的时候键入类名： <br />c:&gt;java junit.swingui.TestRunner testClass</font>
				</font>
		</p>
		<p>下面是一些具体的编写测试代码的技巧或较好的实践方法： <br /><br />1. 不要用TestCase的构造函数初始化Fixture，而要用setUp()和tearDown()方法。 <br /><br />2. 不要依赖或假定测试运行的顺序，因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。 <br /><br />3. 避免编写有副作用的TestCase。例如：如果随后的测试依赖于某些特定的交易数据，就不要提交交易数据。简单的会滚就可以了。 <br /><br />4. 当继承一个测试类时，记得调用父类的setUp()和tearDown()方法。 <br /><br />5. 将测试代码和工作代码放在一起，一边同步编译和更新。（使用Ant中有支持junit的task.） <br /><br />6. 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。 <br /><br />7. 确保测试与时间无关，不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。 <br /><br />8. 如果你编写的软件面向国际市场，编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。 <br /><br />9. 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法，可以使代码更为简洁。<br /> <br />10.测试要尽可能地小，执行速度快。<br />---------------------------------------------------<br />    JUnit是单元测试工具，我的理解是用来测试单个模块功能的工具，非常适合测试比较独立的模块。<br />    测试的用途是用来检查错误，我认为这个工具并不只是帮助编程时查错。对于传统的编程方式，一般都设计好了各个模块，通常模块测试一次就可以了，但是目前设计总是因为功能不断的增加和修改而改变，如果多次这样，程序的质量和bug修正将是一个繁重困难的工作。JUnit在这种情况下，可以大大的提高工作效率，只要在第一次写代码的时候额外编写测试代码，以后所有的修改都可以实现自动的测试。<br />    同时因为自动测试的实现，XP编程方法才有了实现的可能。通过先写好测试代码，另一个角度看也就是我们要实现的功能，然后写一个最简单的使测试通过的代码，再进行一个循环：改进－测试－通过－改进，直到代码满意，即使不太满意但写出的代码也是可运行的。</p>
<img src ="http://www.blogjava.net/czcode/aggbug/85041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/czcode/" target="_blank">崔振</a> 2006-12-02 16:23 <a href="http://www.blogjava.net/czcode/articles/85041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读取properties的几种方法</title><link>http://www.blogjava.net/czcode/articles/85036.html</link><dc:creator>崔振</dc:creator><author>崔振</author><pubDate>Sat, 02 Dec 2006 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/czcode/articles/85036.html</guid><wfw:comment>http://www.blogjava.net/czcode/comments/85036.html</wfw:comment><comments>http://www.blogjava.net/czcode/articles/85036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/czcode/comments/commentRss/85036.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/czcode/services/trackbacks/85036.html</trackback:ping><description><![CDATA[
		<p>1.<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span> <span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> getContextParam(){<br /></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">  InputStream is</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.getClass().getClassLoader().getResourceAsStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">clientConfig.properties</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">  Properties prop</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Properties();<br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000">   prop.load(is);<br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.classForName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">prop.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">classForName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.connectStr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">prop.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">connectStr</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.userName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">prop.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">userName</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.psw</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">prop.getProperty(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">psw</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">  } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (IOException e) {<br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">   e.printStackTrace();<br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">  }<br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">注：只能将clientConfig.properties放入src下</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">15</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000"></span></div>
		<br />2.<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">String realName</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.getServletContext().getRealPath(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WEB-INF</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">     Properties prop</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Properties();<br /></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">  InputStream is</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000">   is </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BufferedInputStream(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileInputStream(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(realName</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/clientConfig.properties</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)));<br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">   prop.load(is);<br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">  } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (FileNotFoundException e) {<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">logger.info("没有发现所需要的配置文件！"+e);</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">   e.printStackTrace();<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">  } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (IOException e) {<br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">logger.info("读取文件的过程中出错！"+e);</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">   e.printStackTrace();<br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">  }<br /></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">注：同样需要定制文件存放的目录</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">16</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000"></span></div><p>3.</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> String getValue(String key) {<br /></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> Properties propertie;<br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000">String path </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Configuration.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">.getResource(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">).substring(</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">  Configuration rc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Configuration(path </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">//config.properties</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (propertie.containsKey(key)) {<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">   String value </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> propertie.getProperty(key);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 得到某一属性的值</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> value;<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">  } </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">注：只适用在windows下，不同的操作系统需要使用File.pathSeparatorChar进行分割<br /></span><span style="COLOR: #008080">15</span> <span style="COLOR: #008000"></span></div><img src ="http://www.blogjava.net/czcode/aggbug/85036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/czcode/" target="_blank">崔振</a> 2006-12-02 16:16 <a href="http://www.blogjava.net/czcode/articles/85036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>