﻿<?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-Dong</title><link>http://www.blogjava.net/dong/</link><description>Share Our Experience of Java</description><language>zh-cn</language><lastBuildDate>Mon, 22 Mar 2010 16:06:52 GMT</lastBuildDate><pubDate>Mon, 22 Mar 2010 16:06:52 GMT</pubDate><ttl>60</ttl><item><title>颠覆JAVA，用WEB的方式开发桌面程序(一)</title><link>http://www.blogjava.net/dong/archive/2009/03/19/260789.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Thu, 19 Mar 2009 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2009/03/19/260789.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/260789.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2009/03/19/260789.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/260789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/260789.html</trackback:ping><description><![CDATA[<p style="font-size: 10pt">最近做了一个日志管理系统<br />
个人觉得采用了一套非常非常创新或者变态的开发方式，就像题目说的那样，使用web的方法开发桌面应用程序，当然所有的技术都是基于java的。<br />
<strong style="color: #0000ff">总结一下在整个项目中使用到的技术</strong><br />
<br />
1、底层服务器的开发socket通信、http报文解析、反射机制（这些技术其实就是开发了一款小型的服务器，让我们的web代码能够在本地运行起来，之所以选择自己开发服务器的原因是，tomcat对于我们这个小桌面程序来说还是太大了点，如果作为桌面启动，用户不可能等待程序启动这么长的时间，我给这个服务器起了个名字叫做<span style="color: #ff0000">jnet</span>）<br />
2、SWT，包括的浏览器控件和窗口等。<br />
3、使用installanywhere来打包程序，方便发布<br />
4、前台展现数据使用了ext2.2<br />
5、扩展自己开发的服务器<span style="color: #ff0000">jnet</span>，开发出自己的&#8220;action&#8221;，应该来说还是符合MVC的<br />
数据库使用的是access，采用jdbc的方式访问，你知道，如果在桌面软件上使用hibernate...<br />
<br />
好了，不说废话<br />
先贴出成品的效果图<br />
<br />
1、桌面图标<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dong/daily-icon.jpg" border="0" /><br />
<br />
2、登录界面<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dong/daily-login.jpg" border="0" /><br />
<br />
3、登录效果图<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dong/daily-logining.jpg" border="0" /><br />
<br />
4、主界面<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dong/daily-main.jpg" border="0" /><br />
</p>
<span style="font-size: 10pt"><br />
是不是觉得还不错呢？JAVA也可以扬眉吐气开发出这样的桌面系统，可惜的是因为使用到了SWT，所以整个项目并不能跨平台，放到linux系统下去运行。<br />
<span style="color: #0000ff"><strong>好了先理一理，发一张项目的原理图</strong></span><br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dong/page.jpg" border="0" /><br />
<br />
看图说话，我们整个项目的构架，就是这个样子的，采用SWT封装了IE作为前台展现，后台使用自己开发的服务器作为后台来处理数据，中间数据通信方式当然就只能是http了<br />
<br />
<span style="color: #0000ff">所以中心思想就是，我开发了个服务器，这个服务器能够让用户扩展自己的类，自己的方法，然后用户就可以根据自己的需要来书写自己的系统，最最最重要的就是，让我们这些写惯了J2EE的人能够使用已经形成的思维来编写桌面系统，我们可以不需要再去学swing和swt，可以使用html的方式来做前台的布局，因为老实说我每次写桌面程序的时候，总会把代码弄得一团糟，在web系统上容易规规矩矩的写出分层的代码，桌面系统...布局就让我头大（我的意思是当你跑出去接私活干的时候，不用再学一套东西，呵呵）。<br />
</span><br />
好了，这个帖子只是一个简单的介绍，整个系统具体的实现方式，会在后续的帖子中一步步解析，大家有什么意见或者建议可以给我留言，谢谢！</span>
<img src ="http://www.blogjava.net/dong/aggbug/260789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2009-03-19 15:16 <a href="http://www.blogjava.net/dong/archive/2009/03/19/260789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA反射机制的简单应用</title><link>http://www.blogjava.net/dong/archive/2008/06/05/206083.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Thu, 05 Jun 2008 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/06/05/206083.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/206083.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/06/05/206083.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/206083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/206083.html</trackback:ping><description><![CDATA[<p style="font-size: 10pt; font-family: 幼圆">&nbsp; 开发的时候有时候会碰到这样的情况，我们在写程序的时候并不知道需要调用某个对象的哪个方法，只有程序运行后，我们才能够知道。或许我们需要根据客户端传过来的某个String参数的值来判断我们应该执行哪个方法。在这种情况下JAVA的反射执行就可以帮上忙了。下面是我做的一个简单的测试代码，提供给大家做个参考。<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.lang.reflect.InvocationTargetException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.lang.reflect.Method;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_86_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_128_Open_Text.style.display='none'; Codehighlighter1_86_128_Closed_Image.style.display='inline'; Codehighlighter1_86_128_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_86_128_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_86_128_Closed_Text.style.display='none'; Codehighlighter1_86_128_Open_Image.style.display='inline'; Codehighlighter1_86_128_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_86_128_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_86_128_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;Dong<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;测试JAVA&nbsp;reflect机制<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_150_950_Open_Image" onclick="this.style.display='none'; Codehighlighter1_150_950_Open_Text.style.display='none'; Codehighlighter1_150_950_Closed_Image.style.display='inline'; Codehighlighter1_150_950_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_150_950_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_150_950_Closed_Text.style.display='none'; Codehighlighter1_150_950_Open_Image.style.display='inline'; Codehighlighter1_150_950_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestRef</span><span id="Codehighlighter1_150_950_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_150_950_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_156_185_Open_Image" onclick="this.style.display='none'; Codehighlighter1_156_185_Open_Text.style.display='none'; Codehighlighter1_156_185_Closed_Image.style.display='inline'; Codehighlighter1_156_185_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_156_185_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_156_185_Closed_Text.style.display='none'; Codehighlighter1_156_185_Open_Image.style.display='inline'; Codehighlighter1_156_185_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_156_185_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_156_185_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;args<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_229_948_Open_Image" onclick="this.style.display='none'; Codehighlighter1_229_948_Open_Text.style.display='none'; Codehighlighter1_229_948_Closed_Image.style.display='inline'; Codehighlighter1_229_948_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_229_948_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_229_948_Closed_Text.style.display='none'; Codehighlighter1_229_948_Open_Image.style.display='inline'; Codehighlighter1_229_948_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)</span><span id="Codehighlighter1_229_948_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_229_948_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestBean&nbsp;test&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TestBean();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method[]&nbsp;methods&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;test.getClass().getMethods();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test.setAbc(</span><span style="color: #000000">"</span><span style="color: #000000">---</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_413_942_Open_Image" onclick="this.style.display='none'; Codehighlighter1_413_942_Open_Text.style.display='none'; Codehighlighter1_413_942_Closed_Image.style.display='inline'; Codehighlighter1_413_942_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_413_942_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_413_942_Closed_Text.style.display='none'; Codehighlighter1_413_942_Open_Image.style.display='inline'; Codehighlighter1_413_942_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">methods.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_413_942_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_413_942_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_482_928_Open_Image" onclick="this.style.display='none'; Codehighlighter1_482_928_Open_Text.style.display='none'; Codehighlighter1_482_928_Closed_Image.style.display='inline'; Codehighlighter1_482_928_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_482_928_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_482_928_Closed_Text.style.display='none'; Codehighlighter1_482_928_Open_Image.style.display='inline'; Codehighlighter1_482_928_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(methods[i].getName().equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">getabc</span><span style="color: #000000">"</span><span style="color: #000000">))</span><span id="Codehighlighter1_482_928_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_482_928_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_508_599_Open_Image" onclick="this.style.display='none'; Codehighlighter1_508_599_Open_Text.style.display='none'; Codehighlighter1_508_599_Closed_Image.style.display='inline'; Codehighlighter1_508_599_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_508_599_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_508_599_Closed_Text.style.display='none'; Codehighlighter1_508_599_Open_Image.style.display='inline'; Codehighlighter1_508_599_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_508_599_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_508_599_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(methods[i].invoke(test));<br />
<img id="Codehighlighter1_636_703_Open_Image" onclick="this.style.display='none'; Codehighlighter1_636_703_Open_Text.style.display='none'; Codehighlighter1_636_703_Closed_Image.style.display='inline'; Codehighlighter1_636_703_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_636_703_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_636_703_Closed_Text.style.display='none'; Codehighlighter1_636_703_Open_Image.style.display='inline'; Codehighlighter1_636_703_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IllegalArgumentException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_636_703_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_636_703_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img id="Codehighlighter1_738_805_Open_Image" onclick="this.style.display='none'; Codehighlighter1_738_805_Open_Text.style.display='none'; Codehighlighter1_738_805_Closed_Image.style.display='inline'; Codehighlighter1_738_805_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_738_805_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_738_805_Closed_Text.style.display='none'; Codehighlighter1_738_805_Open_Image.style.display='inline'; Codehighlighter1_738_805_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IllegalAccessException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_738_805_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_738_805_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img id="Codehighlighter1_843_910_Open_Image" onclick="this.style.display='none'; Codehighlighter1_843_910_Open_Text.style.display='none'; Codehighlighter1_843_910_Closed_Image.style.display='inline'; Codehighlighter1_843_910_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_843_910_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_843_910_Closed_Text.style.display='none'; Codehighlighter1_843_910_Open_Image.style.display='inline'; Codehighlighter1_843_910_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(InvocationTargetException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_843_910_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_843_910_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/dong/aggbug/206083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-06-05 16:36 <a href="http://www.blogjava.net/dong/archive/2008/06/05/206083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA中Object[]数据转String[]</title><link>http://www.blogjava.net/dong/archive/2008/06/02/205280.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Mon, 02 Jun 2008 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/06/02/205280.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/205280.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/06/02/205280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/205280.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/205280.html</trackback:ping><description><![CDATA[<font style="font-size: 10pt; color: #000000; font-family: Verdana" color="#ff0000">(String[])ArrayList.toArray(new String[0]);</font>
<img src ="http://www.blogjava.net/dong/aggbug/205280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-06-02 11:25 <a href="http://www.blogjava.net/dong/archive/2008/06/02/205280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在XML配置文件中输出&amp;符号</title><link>http://www.blogjava.net/dong/archive/2008/05/21/201812.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Wed, 21 May 2008 01:03:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/05/21/201812.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/201812.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/05/21/201812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/201812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/201812.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">XML里是无法直接正常输出&amp;等特殊字符的，可用&amp;amp;转义表示！</span>
<img src ="http://www.blogjava.net/dong/aggbug/201812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-05-21 09:03 <a href="http://www.blogjava.net/dong/archive/2008/05/21/201812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fmt标签的使用</title><link>http://www.blogjava.net/dong/archive/2008/05/20/201568.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Tue, 20 May 2008 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/05/20/201568.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/201568.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/05/20/201568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/201568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/201568.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">1、数字格式化<br />
&lt;fmt:formatNumber value="33.33333" pattern="#.0"&gt;&lt;/fmt:formatNumber&gt;--&gt;输出33.3<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid">pattern中符号的约束规定<br />
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个数位<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个数位，前导零和追尾零不显示<br />
.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小数点分割位置<br />
，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组分隔符的位置<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 负数前缀<br />
%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用100乘，并显示百分号<br />
其他任何符号&nbsp;&nbsp;&nbsp; 在输出字符串中包括指定符号</div>
2、日期格式化<br />
&lt;fmt:formatDate value="${vo.lateCompleteDate}" type="both" pattern="yy-MM-dd"/&gt;</span>
<img src ="http://www.blogjava.net/dong/aggbug/201568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-05-20 09:29 <a href="http://www.blogjava.net/dong/archive/2008/05/20/201568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HashMap标准遍历方法</title><link>http://www.blogjava.net/dong/archive/2008/05/19/201440.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Mon, 19 May 2008 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/05/19/201440.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/201440.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/05/19/201440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/201440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/201440.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">HashMap&lt;String,String&gt; testMap = new HashMap&lt;String,String&gt;();<br />
for (Map.Entry&lt;String, String&gt; entry : testMap&nbsp;.entrySet()) {<br />
entry.getKey();<br style="font-family: " />
entry.getValue();<br style="font-family: " />
}</span> 
<img src ="http://www.blogjava.net/dong/aggbug/201440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-05-19 17:09 <a href="http://www.blogjava.net/dong/archive/2008/05/19/201440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在java环境中访问spring中配置的对象</title><link>http://www.blogjava.net/dong/archive/2008/05/19/201430.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Mon, 19 May 2008 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/05/19/201430.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/201430.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/05/19/201430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/201430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/201430.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">ApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml"); <br style="font-family: " />
Map&lt;String,String&gt; bureauMap = ((DictionaryService)ctx.getBean("dictionaryService")).getBureauMap();</span>
<img src ="http://www.blogjava.net/dong/aggbug/201430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-05-19 16:45 <a href="http://www.blogjava.net/dong/archive/2008/05/19/201430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于request.request.getRequestDispatcher().forward()方法的一点看法</title><link>http://www.blogjava.net/dong/archive/2008/04/17/193658.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Thu, 17 Apr 2008 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/04/17/193658.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/193658.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/04/17/193658.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/193658.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/193658.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Arial">今天在调试一个Servlet程序的时候，报了以下错误！<br style="font-family: " />
<span style="color: red">java.lang.IllegalStateException: Cannot forward after response has been committed<br />
</span>根据字面理解的话，意识是在response已经提交后程序不能再一次的跳转！<br />
<br />
研究代码以后发现，是因为前面已经执行过一次<font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font><br />
但是后面的<font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font>依然被执行到了！<br />
<br />
那么很有理由相信<font face="Arial" size="2">request.request.getRequestDispatcher().forward()</font>跳转本身是不会返回什么，也不会终止程序体的执行！<br />
程序体后面该执行的还是会执行！</span>
<img src ="http://www.blogjava.net/dong/aggbug/193658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-04-17 10:28 <a href="http://www.blogjava.net/dong/archive/2008/04/17/193658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat配置JNDI数据源 报错解决</title><link>http://www.blogjava.net/dong/archive/2008/02/24/181755.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Sun, 24 Feb 2008 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/02/24/181755.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/181755.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/02/24/181755.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/181755.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/181755.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt"><span style="font-size: 10pt; font-family: Verdana">
<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/dong"</span><span style="color: #ff0000">&nbsp;&nbsp;auth</span><span style="color: #0000ff">="Container"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ResourceParams&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/dong"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">factory</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.commons.dbcp.BasicDataSourceFactory</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">maxActive</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">100</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">maxIdle</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">30</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">maxWait</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5000</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">username</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">root</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">password</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">colorful</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">driverClassName</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.gjt.mm.mysql.Driver</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">url</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jdbc:mysql://localhost:3306/dong</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">parameter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ResourceParams</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
使用如上配置的时候一直报这个<br />
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'错误<br />
<br />
在网络上寻觅后发现是因为Tomcat版本引起的，改成如下问题就消失了<br />
<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/dong"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;password</span><span style="color: #0000ff">="colorful"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;driverClassName</span><span style="color: #0000ff">="org.gjt.mm.mysql.Driver"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;maxIdle</span><span style="color: #0000ff">="2"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;maxWait</span><span style="color: #0000ff">="5000"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;username</span><span style="color: #0000ff">="root"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #0000ff">="jdbc:mysql://localhost:3306/dong"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;maxActive</span><span style="color: #0000ff">="4"</span><span style="color: #0000ff">/&gt;</span></div>
</span></span>
<img src ="http://www.blogjava.net/dong/aggbug/181755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-02-24 13:47 <a href="http://www.blogjava.net/dong/archive/2008/02/24/181755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts解决ActionForm、Action过多问题</title><link>http://www.blogjava.net/dong/archive/2008/02/12/179682.html</link><dc:creator>Dong</dc:creator><author>Dong</author><pubDate>Tue, 12 Feb 2008 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/dong/archive/2008/02/12/179682.html</guid><wfw:comment>http://www.blogjava.net/dong/comments/179682.html</wfw:comment><comments>http://www.blogjava.net/dong/archive/2008/02/12/179682.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/dong/comments/commentRss/179682.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dong/services/trackbacks/179682.html</trackback:ping><description><![CDATA[<span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp; </span></span></span>
<p style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">1、&nbsp;<span style="font-family: 宋体">解决</span>Action<span style="font-family: 宋体">过多问题</span></span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">通过</span>DispatchAction<span style="font-family: 宋体">的方式</span></span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">建立一个继承自</span>DispatchAction<span style="font-family: 宋体">的</span>Action</span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">此类</span>Action<span style="font-family: 宋体">允许我们在表单中带有参数，根据参数执行</span>Action<span style="font-family: 宋体">中的不同方法，以此实现</span>Action<span style="font-family: 宋体">的多用</span></span></span></span></p>
<p style="margin-left: 18pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">步骤</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">①<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">建立一个继承自</span>DispatchAction<span style="font-family: 宋体">的</span>Action<span style="font-family: 宋体">规定方法名称</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">②<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">在表单页面中添加一个隐藏域值，假设为</span>codi&nbsp;&nbsp; value=&#8221;insert&#8221;</span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">③<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">在</span>Struts-config.xml<span style="font-family: 宋体">的相应</span>Form<span style="font-family: 宋体">中</span>action<span style="font-family: 宋体">项目中设置</span>parameter<span style="font-family: 宋体">参数值为</span>codi</span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">那么当表单提交的时候，</span>Action<span style="font-family: 宋体">中的</span>insert()<span style="font-family: 宋体">方法就会被执行，可以通过改隐藏域中的值的方式来改变</span>Action<span style="font-family: 宋体">要执行的方法</span></span></span></span></p>
<p style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">2、&nbsp;<span style="font-family: 宋体">解决</span>ActionForm<span style="font-family: 宋体">过多的问题</span></span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">通过动态</span>ActionForm<span style="font-family: 宋体">的方式，即</span>DynaActionForm</span></span></span></p>
<p style="margin-left: 18pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">步骤</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">①<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">在</span>Struts-config.xml</span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #33cccc">&lt;form-beans&gt;</span></span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #33cccc">&nbsp;&lt;form-bean&nbsp;name=&#8221;abcForm&#8221; type=&#8221;org.apache.struts.action.DynaActionForm&#8221;&gt;</span></span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #33cccc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form-property name=&#8221;userid&#8221; type=&#8221;java.long.String&#8221;&gt;&lt;/form-property&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: 6pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #33cccc">&lt;/form-bean&gt;</span></span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #33cccc">&lt;/form-beans&gt;</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">②<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">在</span>Struts-config.xml</span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">更改相应的</span>action<span style="font-family: 宋体">中的</span>attribute<span style="font-family: 宋体">和</span>name<span style="font-family: 宋体">为</span>abcForm</span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">这样就配置好了一个动态的</span>ActionForm</span></span></span></p>
<p style="margin-left: 18pt; text-indent: -18pt; tab-stops: list 18.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">3、&nbsp;<span style="font-family: 宋体">解决动态</span>ActionForm<span style="font-family: 宋体">的验证问题</span></span></span></span></p>
<p style="margin-left: 18pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">通过动态验证</span>ActonForm<span style="font-family: 宋体">的方式，即</span>DynaValidatorForm</span></span></span></p>
<p style="margin-left: 18pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">步骤</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">①<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">在</span>Struts-config.xml</span></span></span></p>
<p style="margin-left: 36pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-family: 宋体">同</span>2<span style="font-family: 宋体">的第一步，但是</span>type<span style="font-family: 宋体">需要改成</span>org.apache.struts.action.DynaValidatorForm</span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: list 36.0pt"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">②<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">配置一个</span>validation.xml<span style="font-family: 宋体">文件</span></span></span></span></p>
<p style="text-indent: 18pt; text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">form-validation</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">formset</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">form </span><span style="font-size: 10pt; color: #7f007f; font-family: 宋体">name</span><span style="font-size: 10pt; color: black; font-family: 宋体">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体">"abcForm"</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">field </span><span style="font-size: 10pt; color: #7f007f; font-family: 宋体">property</span><span style="font-size: 10pt; color: black; font-family: 宋体">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体">"userid" </span><span style="font-size: 10pt; color: #7f007f; font-family: 宋体">depends</span><span style="font-size: 10pt; color: black; font-family: 宋体">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体">"required"</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">arg </span><span style="font-size: 10pt; color: #7f007f; font-family: 宋体">key</span><span style="font-size: 10pt; color: black; font-family: 宋体">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体">"err.userid" </span><span style="font-size: 10pt; color: #7f007f; font-family: 宋体">resource</span><span style="font-size: 10pt; color: black; font-family: 宋体">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 宋体">"true"</span><span style="font-size: 10pt; color: teal; font-family: 宋体">/&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">field</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">form</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">formset</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="text-indent: 21pt; text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: teal; font-family: 宋体">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 宋体">form-validation</span><span style="font-size: 10pt; color: teal; font-family: 宋体">&gt;</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; text-align: left; tab-stops: list 36.0pt" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">③<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: 宋体">在Struts资源文件中配置err.userid、以及errors.<span style="color: black">required</span></span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; text-align: left; tab-stops: list 36.0pt" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">④<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: 宋体">在Struts-</span><span style="font-size: 10pt; font-family: 宋体">config.xml</span><span style="font-size: 10pt; font-family: 宋体">配置相应的action，添加validate=</span><span style="font-size: 10pt">&#8221;</span><span style="font-size: 10pt; font-family: 宋体">true</span><span style="font-size: 10pt">&#8221;</span><span style="font-size: 10pt; font-family: 宋体">添加验证支持</span></span></span></span></p>
<p style="margin-left: 36pt; text-indent: -18pt; text-align: left; tab-stops: list 36.0pt" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; color: black; font-family: 宋体">⑤<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: 宋体">添加struts Plugin插件</span></span></span></span></p>
<p style="margin-left: 36pt; text-align: left" align="left"><span style="font-size: 10pt; font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">设置plugin class为org.apache.struts.validator.ValidatorPlugIn</span></span></span></span></p>
<p style="margin-left: 36pt; text-align: left" align="left"><span style="font-size: 10pt; font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">添加propertys</span></span></span></span></p>
<p style="margin-left: 36pt; text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; font-family: 宋体">Property</span><span style="font-size: 10pt; font-family: Wingdings">&#224;</span><span style="font-size: 10pt; font-family: 宋体"> pathnames</span></span></span></span></p>
<p style="margin-left: 36pt; text-align: left" align="left"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="font-size: 10pt; font-family: 宋体">Value</span><span style="font-size: 10pt; font-family: Wingdings">&#224;</span><span style="font-size: 10pt; font-family: 宋体"> /WEB-INF/validator-rules.xml,/WEB-INF/validation.xml</span></span></span></span></p>
<p style="margin-left: 36pt; text-align: left" align="left"><span style="font-size: 10pt; font-family: 宋体"><span style="font-size: 8pt"><span style="font-family: Verdana"><span style="font-size: 10pt">这样一个验证框架就配置好了！</span></span></span></span></p>
<img src ="http://www.blogjava.net/dong/aggbug/179682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dong/" target="_blank">Dong</a> 2008-02-12 13:47 <a href="http://www.blogjava.net/dong/archive/2008/02/12/179682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>