﻿<?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-轮上飞-随笔分类-&lt;b&gt;J2EE&lt;/b&gt;</title><link>http://www.blogjava.net/zhyiwww/category/8511.html</link><description>zhyiwww</description><language>zh-cn</language><lastBuildDate>Fri, 23 May 2008 11:17:43 GMT</lastBuildDate><pubDate>Fri, 23 May 2008 11:17:43 GMT</pubDate><ttl>60</ttl><item><title>AJAX中返回XML串但是不能返回XML DOM对象问题的解决</title><link>http://www.blogjava.net/zhyiwww/archive/2008/05/21/202017.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 21 May 2008 13:11:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2008/05/21/202017.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/202017.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2008/05/21/202017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/202017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/202017.html</trackback:ping><description><![CDATA[
		<p>我今天遇到了一个问题，在用post发送一个请求到服务器，然后，返回来了XML的串数据，我想通过response.responseXML来取得XML的Document对象，来实现用Javascript对XML文档的解析，但是，我就只能用response.responseText取得文本数据，通过response.responseXML取得的对象为null.结果一直也没有搞明白。<br />javascript的代码如下（用的prototype1.6.js）：<br /><br />function findpoi(){<br />    //alert("find ");  <br />    var pname=$F('pnid');<br />    alert(pname);<br />    <br />    var url="poiSearch.do";<br />    <br />    var opt = {<br />     method:'post',<br />     <br />     //contentType:'application/xml',<br />     //requestHeaders:'text/xml',<br />     onComplete:function(transport){<br />      alert(transport.status);<br />      document.title="ok";<br />      if(200==transport.status){<br />       <br />       //document.title="ok";<br />       var cntTxt=transport.responseText;<br />       alert(cntTxt);<br />       <br /><font color="#ff1493"><strong>       var dobj = transport.responseXML;<br />       alert("xml is :  "+dobj);<br /></strong></font>      (此处总是取得的是null对象)<br />       <br />       //var pl = cntTxt.getElementByName("poi");<br />       //alert(pl);<br />       <br />       var ajObj = Ajax.getTransport();<br />       alert(ajObj);<br />        <br />            <br />      }<br />     },<br />     postBody:"?city=beijing&amp;keyword=kfc"<br />     <br />    };<br />    <br />    var ajax=new Ajax.Request(url,opt); <br />    <br />   }<br /><br />我的struts action的代码如下：<br /><br />public ActionForward execute(ActionMapping mapping, ActionForm form,<br />   HttpServletRequest request, HttpServletResponse response) {<br />  DynaActionForm poiForm = (DynaActionForm) form;<br /><br />  String city = (String) poiForm.get("city");<br />  String keyword = (String) poiForm.get("keyword");</p>
		<p>
				<br />  <br />  Search bs = new Search();<br />  bs.baseSearch(city + "/" + keyword);</p>
		<p>  PoiDAO poidao = new PoiDAO();<br />  int count = 10;<br />  int page = 1;<br />  ArrayList arry = poidao.by_key_search("北京", "长安商场", count,<br />    page);<br />  System.out.println(arry.size());<br />  <br />  Document doc= DocumentFactory.getInstance().createDocument();<br />  doc.setXMLEncoding("UTF-8");<br />  Element root = doc.addElement("pois");<br />  <br />  root.addElement("poi")<br />  .addAttribute("pid", "1155")<br />  .addAttribute("longitude", "116.5864")<br />  .addAttribute("latitude", "39.8195");  <br />  <br />  <br />  ListIterator iter = arry.listIterator();<br />  while(iter.hasNext()){<br />  <br />   Poi p = (Poi)iter.next();<br />   //float lon = p.getLatitude();<br />   int id=p.getPoi_id();<br />   double lon=p.getLongitude();<br />   double lat = p.getLatitude();<br />   <br />   System.out.println("id is :  "+id);<br />   System.out.println("lon : " + lon);<br />   <br />   Element poi=root.addElement("poi")<br />    .addAttribute("pid", String.valueOf(p.getPoi_id()))<br />    .addAttribute("longitude", String.valueOf(lon))<br />    .addAttribute("latitude", String.valueOf(lat));   <br />  }<br />  <br />  try {<br />   PrintWriter w = response.getWriter();<br />   <br />   XMLWriter writer = new XMLWriter(w);<br />   writer.write(doc);<br />   <br />   writer.close();<br />   w.close();<br />   <br />  } catch (IOException e) {<br />   // TODO Auto-generated catch block<br />   e.printStackTrace();<br />  }<br />  <br />  return null;<br /> }<br /><br />下午的时候，总是在试图通过设置contentType来实现，结果是失败了。回来的路上，我就一直在想，能取到XML的串，不能取到XML的对象。那么也就是说，返回的数据是串，也就是文本类型。突然，我的脑海里闪现了一个问题，是不是返回的contentType没有设置成xml.<br />所以，我就在action里面，添加了<br />response.setContentType("text/xml");<br />重新测试，果然成功。<br />response.responseXML取到了对象。<br /><br />问题就这样得到了解决。<br /><br />问题总结：<br />如果想要通过AJAX的response.responseXML取得XML Document对象，那么就要在服务器的相应的时候设置ContextType为text/xml,否则的话，就只能去得到xml的文本串，不能得到DOM对象。<br /><br /><br /></p>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/202017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2008-05-21 21:11 <a href="http://www.blogjava.net/zhyiwww/archive/2008/05/21/202017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在eclipse中使用证则表达式</title><link>http://www.blogjava.net/zhyiwww/archive/2008/04/08/191476.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 08 Apr 2008 06:05:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2008/04/08/191476.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/191476.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2008/04/08/191476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/191476.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/191476.html</trackback:ping><description><![CDATA[删除注释行  \n*\/\/.*<br />可以用来查询注释行，如果想删除所有的注释的话，可以进行全部替换的操作，用null来替换就可以了。<br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/191476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2008-04-08 14:05 <a href="http://www.blogjava.net/zhyiwww/archive/2008/04/08/191476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟老关学单态模式</title><link>http://www.blogjava.net/zhyiwww/archive/2008/02/15/180055.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 15 Feb 2008 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2008/02/15/180055.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/180055.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2008/02/15/180055.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/180055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/180055.html</trackback:ping><description><![CDATA[老关者，吾同学也。哈哈，今天看他的博客，对单态模式又有了进一步的理解。<br />以前使用的单态模式，也能实现，不过有个限制，看下面的代码<br /><pre class="displaycode">import java.util.*;<br />class Singleton<br />{<br />  private static Singleton instance;<br /><br />  private Singleton()<br />  {<br />  }<br /><br />  public static Singleton getInstance()<br />  {<br />    if (instance == null)          //1<br />      instance = new Singleton();  //2<br />    return instance;               //3<br />  }<br />}</pre>这就是我们常使用的单态模式。<br />现在，我们作一个假设，如果两个线程同时执行此程序，都刚执行完1，到2，还没有之行，停住。<br />此时<br />thread1得到的instance是null<br />thread2得到的instance也是null<br />下面会如何呢？<br />显然，两个线程会分别创建和初始化一个new Singleton()对象。<br />那么，我们的单态还能实现单态的功能吗？不能。<br />不过，这是个特例，只有在多线程程序，同时两个或多个线程都执行到1还没有执行2的时候才能出现。<b>也就是说，如果没有实现方法的同步的话，上面的模式是不能保证生成一个实例的。</b><br />如果是在非多线程的程序中就更不会出现这样的问题。<br />但是，些程序是一个严密的工作。所以，程序要在任何情况和平台下都是正确的。<br /><br />希望，通过此文，你也能明白，为什么上面的单态模式是不安全的，为什么这种实现方法有生成多个实例的可能？<br />想更深入的理解，请参考<br /><a href="http://guanhw.blog.hexun.com/10653016_d.html">http://guanhw.blog.hexun.com/10653016_d.html</a><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/180055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2008-02-15 13:27 <a href="http://www.blogjava.net/zhyiwww/archive/2008/02/15/180055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web开发中使用反射为Bean赋值</title><link>http://www.blogjava.net/zhyiwww/archive/2007/09/21/147177.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 21 Sep 2007 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/09/21/147177.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/147177.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/09/21/147177.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/147177.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/147177.html</trackback:ping><description><![CDATA[ 
<div class="Section0"><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">我们在Web开发中，可能经常会从表单中取值，然后封装成一个bean的时候。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">可能你也是这样做的：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">String uname = (String)request.getParameter("uname");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">String upass = (String)request.getParameter("upass");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">User u = new User(uname,upass);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">或者</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">U.set……</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">u.set……</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">等等</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">如果字段很多的话，可能前面就要很多的各这样的过程。也许你也会觉得很是麻烦，又没有好的办法。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">我们可以使用反射来实现，也许可以减轻一点您的负担。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">代码如下：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">User u = new User();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Enumeration m = request.getParameterNames();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">while(m.hasMoreElements()){</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">String  pn = (String)m.nextElement();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println(pn + " --- ");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">String  pv = (String)request.getParameter(pn);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println( pv + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Class c = u.getClass();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println(" class is : " + c + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">try {</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Field f = c.getField(pn);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println("field is : " + f + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">f.set(u, pv);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println(" user name is : " + u.getUname() + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println(" user pass is : " + u.getUpass() + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">} catch (SecurityException e) {</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">// TODO Auto-generated catch block</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">e.printStackTrace();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">} catch (NoSuchFieldException e) {</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">// TODO Auto-generated catch block</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">e.printStackTrace();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">} catch (IllegalArgumentException e) {</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">// TODO Auto-generated catch block</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">e.printStackTrace();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">} catch (IllegalAccessException e) {</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">// TODO Auto-generated catch block</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">e.printStackTrace();</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">}</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">}</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">我们也可以把这个部分封装起来成一个类，实现从request到一个bean的注入。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="MARGIN-LEFT: 21pt; LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">上面的方法有一个缺点，由于我们使用的Field来实现的，所以，能取得的字段一定要声明成public,如果是private的，就不能取到了。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="MARGIN-LEFT: 21pt; LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="MARGIN-LEFT: 21pt; LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">测试结果如下：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="MARGIN-TOP: 5pt; LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">uname --- zywewqeqwe</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">class is : class org.zy.demo.sd.bean.User</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">private field is : private java.lang.String org.zy.demo.sd.bean.User.uname</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">upass --- zywqeqweqweqw</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">class is : class org.zy.demo.sd.bean.User</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="MARGIN-LEFT: 21pt; LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">private field is : private java.lang.String org.zy.demo.sd.bean.User.upass</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">解决上面的问题，我们可以使用另外一个方法：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Field f = c.getDeclaredField(pn);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">out.println(" private field is : " + f + "&lt;br&gt;");</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">就这一个方法的不同就可以实现和上面的不同的结果，上面的</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"> </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Field f = c.getField(pn);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">可以能取public的字段，但是</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">getDeclaredField(pn);</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">同时可以取到private字段的值。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">注意：</font></span><span style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">上面的功能要能实现，要保证form的字段和bean定义的字段的完全一致。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-INDENT: 21pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face="宋体">希望自己的一点小小的体会能对您起到一点帮助作用。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p><p class="0" style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p></div><!--EndFragment--><img src ="http://www.blogjava.net/zhyiwww/aggbug/147177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-09-21 18:08 <a href="http://www.blogjava.net/zhyiwww/archive/2007/09/21/147177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts中如何快速填充bean</title><link>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142973.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Sep 2007 10:33:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142973.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/142973.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142973.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/142973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/142973.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有的时候，在</span>
				<span lang="EN-US">action</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面，我们可能要把一个</span>
				<span lang="EN-US">request</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的各个属性得值放到一个</span>
				<span lang="EN-US">bean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面，所以我们可能就要一个属性一个属性的去设置，如下</span>
				<span lang="EN-US">:</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">User u = new User();</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">u.setUserName(request.getParameter(“username”));</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">u.setUserPassword(request.getParameter(“password”));</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">……</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果有很多的项的话，那么就会很麻烦。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么，怎么样才能更方便，快捷呢</span>
				<span lang="EN-US">?</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其实</span>
				<span lang="EN-US">struts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面给我们提供了一个类</span>
				<span lang="EN-US">RequestUtil,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以很方便的解决这个问题。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">User u = new User();</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>try {</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 3">                     </span>
						<b style="mso-bidi-font-weight: normal">RequestUtils.populate(u, request);<o:p></o:p></b>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>} catch (ServletException e) {</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 3">                     </span>// TODO Auto-generated catch block</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 3">                     </span>e.printStackTrace();</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>}</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 2">              </span>System.out.println(" the user is :<span style="mso-spacerun: yes">  </span>" + u.getUname() + "<span style="mso-spacerun: yes">   </span>-<span style="mso-spacerun: yes">  </span>"<span style="mso-spacerun: yes">  </span>+ u.getUpass());</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">User</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类里面的属性要一一对应。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这样，</span>
				<span lang="EN-US">populate()</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法就会自动地把对应的属性填充到</span>
				<span lang="EN-US">User</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象里面。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代码的执行结果如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">the user is :<span style="mso-spacerun: yes">  </span>samename<span style="mso-spacerun: yes">   </span>-<span style="mso-spacerun: yes">  </span>samenamepassword<br /><o:p><br />     其实，不管，是不是使用struts,这个类和这个方法都可以使用。<br />     简单的总结一下，仅供初学者参考。</o:p></span>
		</p>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/142973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-09-05 18:33 <a href="http://www.blogjava.net/zhyiwww/archive/2007/09/05/142973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在struts中使用动态Form</title><link>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142947.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Sep 2007 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142947.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/142947.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/09/05/142947.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/142947.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/142947.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">struts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用动态</span>
				<span lang="EN-US">form,需要</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有以下几步：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">1)<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置动态</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt">form<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">要想使用动态</span>
				<span lang="EN-US">form,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先要现在</span>
				<span lang="EN-US">struts-config.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中作配置</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例代码如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-beans </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">    </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-bean </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"vOForm" </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">type</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"org.apache.struts.action.DynaActionForm"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">      </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-property </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"uname" </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">type</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"java.lang.String" </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">/&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">     </span>
						<span style="mso-spacerun: yes"> </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-property </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"upass" </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f007f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">type</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">=</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"java.lang.String" </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">/&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">    </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-bean</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #3f7f7f; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form-beans</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">使用动态</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form,</span>
				<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">没有对应的类，所以，如果需要扩展属性，只需要再次配置文件中添加一个属性家可以了。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">但是如果是</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">actionform</span>
				<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">的话，那么，如果你添加了一个属性的话，那么你就要在属性里面添加一个属性，在类里面添加一个属性。而必须做好这种对应。动态</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form</span>
				<span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">就没有这个必要了。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从这一点来说，动态</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用起来就更加方便。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">2)<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt">
								<span style="mso-spacerun: yes"> </span>
						</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt">form<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">Form,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其实是一个</span>
				<span lang="EN-US">transfer object ,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也就是说，是在</span>
				<span lang="EN-US">viewer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">action</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只见地交换数据和传递数据的对象。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以从页面的</span>
				<span lang="EN-US">form,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">每一个属性都要和动态</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的属性一一对应。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后，由</span>
				<span lang="EN-US">struts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来完成其属性值的映射。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例代码如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-tab-count: 1">  </span>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;form method="POST" action="login.do"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-tab-count: 2">      </span>username : &lt;input type="text" name="uname" value="zhangyi"&gt;&lt;br&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-tab-count: 2">      </span>password : &lt;input type="password" name="upass" value="zhangyi"&gt;&lt;br&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-tab-count: 2">      </span>&lt;input type="submit" name="submit" value="login"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">  </span>
						<span style="mso-tab-count: 1">  </span>&lt;/form&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的属性和动态</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的属性是一一对应的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">3)<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt">
								<span style="mso-spacerun: yes"> </span>Action<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由上面的页面</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上，我们可以看到，如果此</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交，那么，请求提交到了</span>
				<span lang="EN-US">login.do</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个</span>
				<span lang="EN-US">action.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那么，在这个</span>
				<span lang="EN-US">action</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面，如何实现对动态</span>
				<span lang="EN-US">form</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的调用</span>
				<span lang="EN-US">?</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例代码如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-tab-count: 2">       </span>DynaActionForm vOForm = (DynaActionForm) form;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<span style="mso-tab-count: 2">       </span>System.</span>
				<i>
						<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #0000c0; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">out</span>
				</i>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">.println(</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #2a00ff; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">"vo is : "</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">+ vOForm);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">因为，我们传递的是</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">DynaActionForm,</span>
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">所以，在调用的时候，我们就要把</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">form</span>
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">强制转换成</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">DynaActionForm</span>
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">对象。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">
								<span style="mso-list: Ignore">4)<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试结果</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 12pt">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上面粒子的执行结果如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-ALIGN: left" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">vo is : DynaActionForm[dynaClass=vOForm,upass=bbbbbbbbb,uname=aaaaaaa]<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">也就是说，我们已经取得了此对象。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">那么下面，你如何调用业务逻辑，那么，就根据自己的需要来实现了。</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p> </p>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/142947.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-09-05 17:08 <a href="http://www.blogjava.net/zhyiwww/archive/2007/09/05/142947.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>精品eclipse插件收集</title><link>http://www.blogjava.net/zhyiwww/archive/2007/08/13/136305.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Mon, 13 Aug 2007 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/08/13/136305.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/136305.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/08/13/136305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/136305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/136305.html</trackback:ping><description><![CDATA[
		<h2 style="font-size: 180%;">Aptana</h2>
		<h3>
				<font size="3">Aptana Update Site</font>
		</h3>
		<font size="3">http://www.aptana.com/<br /></font>
		<h3>Installing the JavaScript debugger</h3>http://www.aptana.com/docs/index.php/Installing_the_JavaScript_debugger<br /><br /><br />JSEclipse<br /><ul type="disc"><li class="kadov-p"><span class="Labels">Name</span>: this will be the label displayed in the Install or Update software user interface. You can enter <strong>JSEclipse</strong>.</li><li class="kadov-p"><span class="Labels">URL</span>: this is the URL to the remote site containing the plugins. Enter:<br /><a title="http://download.macromedia.com/pub/labs/jseclipse/autoinstall/site.xml" href="http://download.macromedia.com/pub/labs/jseclipse/autoinstall/site.xml">http://download.macromedia.com/pub/labs/jseclipse/autoinstall/</a></li></ul><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/136305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-08-13 10:25 <a href="http://www.blogjava.net/zhyiwww/archive/2007/08/13/136305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在struts中使用spring</title><link>http://www.blogjava.net/zhyiwww/archive/2007/07/05/128430.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 05 Jul 2007 10:27:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/07/05/128430.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/128430.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/07/05/128430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/128430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/128430.html</trackback:ping><description><![CDATA[已经有很多人写过文章，来介绍和说明这个问题了。<br />我在学习和使用之后，就也作了一下总结。<br />第一步：<br />配置和struts环境<br /><br />第二步：<br />载入spring包<br />第三步：<br />在struts-config.xml中作spring插件配置，代码如下：<br /><br />  &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt;<br />    &lt;set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /&gt;<br />  &lt;/plug-in&gt;<br />  <br />第四步：<br />在action中使用spring.<br /><br />要使用spring,首先就要取得spring的控制权，也就是取得ApplicationContext。<br /><br />首先，如果我们了解了插件初始化的结果的话，那么我们看：<br />java.util.Enumeration e = this.getServlet().getServletContext().getAttributeNames();<br />        <br />        while(e.hasMoreElements()){<br />            String s = (String)e.nextElement();<br />            <br />            System.out.println(s);<br />        }<br />        <br />这一段程序将显示所有的初始化的参数变量，显示如下：<br />org.apache.catalina.jsp_classpath<br />org.apache.struts.action.MESSAGE<br />org.apache.struts.util.PREFIXES<br /><font color="#0000ff"><b>org.springframework.web.struts.ContextLoaderPlugIn.CONTEXT.</b></font><br />org.apache.catalina.WELCOME_FILES<br />org.apache.struts.action.ACTION_SERVLET<br />org.apache.struts.action.FORWARDS<br />org.apache.struts.action.REQUEST_PROCESSOR<br />javax.servlet.context.tempdir<br />org.apache.struts.action.MAPPINGS<br />org.apache.struts.action.SERVLET_MAPPING<br />org.apache.struts.action.FORM_BEANS<br />org.apache.struts.action.PLUG_INS<br />org.apache.catalina.resources<br />org.apache.struts.action.MODULE<br /><br />蓝色的部分就是spring初始化后的结果，也就是，spring初始化后的结果WebApplicationContext保存在<br /><font color="#0000ff"><b>org.springframework.web.struts.ContextLoaderPlugIn.CONTEXT.<br /></b><font color="#000000">变量里面。那么我们就可以使用如下的方式来取得此对象：<br />        ApplicationContext ctx = (ApplicationContext)this.getServlet().getServletContext().getAttribute("org.springframework.web.struts.ContextLoaderPlugIn.CONTEXT.");<br />        System.out.println("ctx  is  :  " + ctx);<br /><br />还有一个方法，就是使用spring给我们提供的接口，我们在构建action继承自ActionSuport,那么，我们就可以通过下面的方法来访问：<br />        ApplicationContext ctx = this.getWebApplicationContext();<br />        System.out.println("the application context is :  " + ctx);<br /><br />接下来，我们就可以测试一下，我们的spring.<br />先创建一个bean:<br />package org.zy.pro.demo.sd.bean;<br /><br />public class User {<br /><br />    private String username;<br /><br />    private String password;<br /><br />    public String getPassword() {<br />        return password;<br />    }<br /><br />    public void setPassword(String password) {<br />        this.password = password;<br />    }<br /><br />    public String getUsername() {<br />        return username;<br />    }<br /><br />    public void setUsername(String username) {<br />        this.username = username;<br />    }<br /><br />}<br />然后再spring的配置文件里面配置，如下：<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;beans xmlns="http://www.springframework.org/schema/beans"<br />    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"&gt;<br /><br />    &lt;bean id="user" class="org.zy.pro.demo.sd.bean.User"&gt;<br />        &lt;property name="username"&gt;<br />            &lt;value&gt;everybody&lt;/value&gt;<br />        &lt;/property&gt;<br />        <br />        &lt;property name="password"&gt;<br />            &lt;value&gt;everybodypassword&lt;/value&gt;<br />        &lt;/property&gt;<br />    &lt;/bean&gt;<br /><br />&lt;/beans&gt;<br /><br />好了，调用一下吧：<br /><br />创建一个action,<br /><br />package org.zy.pro.demo.sd.action;<br /><br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;<br /><br />import org.apache.struts.action.ActionForm;<br />import org.apache.struts.action.ActionForward;<br />import org.apache.struts.action.ActionMapping;<br />import org.springframework.context.ApplicationContext;<br />import org.springframework.core.io.FileSystemResourceLoader;<br />import org.springframework.web.context.WebApplicationContext;<br />import org.springframework.web.context.support.GenericWebApplicationContext;<br />import org.springframework.web.context.support.ServletContextResourceLoader;<br />import org.springframework.web.struts.ActionSupport;<br />import org.zy.pro.demo.sd.bean.User;<br /><br />public class Bus extends ActionSupport {<br /><br />    @Override<br />    public ActionForward execute(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {<br />        // TODO Auto-generated method stub<br />        <br />        ApplicationContext ctx = this.getWebApplicationContext();<br />        System.out.println("the application context is :  " + ctx);<br />        <br />        User user = (User) ctx.getBean("user");<br />        System.out.println("username is : "+user.getUsername());<br />     <br />        return super.execute(arg0, arg1, arg2, arg3);<br />    }<br /><br />}<br /><br />然后再struts-config.xml文件里面配置action如下：<br /></font><b><br /></b></font>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"&gt;<br /><br />&lt;struts-config&gt;<br />  &lt;data-sources /&gt;<br />  &lt;form-beans /&gt;<br />  &lt;global-exceptions /&gt;<br />  &lt;global-forwards /&gt;<br />  &lt;action-mappings &gt;<br />    &lt;action path="/map" type="org.zy.pro.demo.sd.action.MapAction" /&gt;<br />    &lt;action path="/bus" type="org.zy.pro.demo.sd.action.Bus" /&gt;  <br />  &lt;/action-mappings&gt;<br />  <br />  &lt;message-resources parameter="org.zy.pro.demo.sd.ApplicationResources" /&gt;<br />  <br />  &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt;<br />    &lt;set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /&gt;<br />  &lt;/plug-in&gt;<br />  <br />&lt;/struts-config&gt;<br /><br />好了，发布，测试一下，结果如下：<br /><br />the application context is :  org.springframework.web.context.support.XmlWebAppl<br />icationContext: display name [WebApplicationContext for namespace 'action-servle<br />t']; startup date [Thu Jul 05 18:23:56 CST 2007]; root of context hierarchy; con<br />fig locations [/WEB-INF/applicationContext.xml]<br />username is : everybody<br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/128430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-07-05 18:27 <a href="http://www.blogjava.net/zhyiwww/archive/2007/07/05/128430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我对type1型依赖注入的粗浅理解</title><link>http://www.blogjava.net/zhyiwww/archive/2007/07/02/127462.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Mon, 02 Jul 2007 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/07/02/127462.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/127462.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/07/02/127462.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/127462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/127462.html</trackback:ping><description><![CDATA[下面的这段代码是SpringGuide中的一个例子<br />public class MyServlet extends HttpServlet { <br /> <br />  public void doGet( <br />HttpServletRequest request,  <br />HttpServletResponse response) <br />     throws ServletException, IOException { <br />   …… <br />  } <br />} <br />作者把这个Servlet的应用归为type1型的依赖注入。以前我曾经看过这个例子，不过当时没有怎么理解。<br />今天，开始仔细的学习的时候，好好的想了一下，觉得稍有理解。<br />对于一个Servlet来说，可能觉得，在用户请求到达的时候，其响应就完了，如果简单的看这个问题，那么就太简单了。作为我们来说需要知道所以然。<br />如果单纯的是一个类，调用一个方法do(String a,String b)，提供两个参数，那也就正常了。因为你调用这个方法的时候，已经实例化了，有可能是你自己实例化的 new Object ().do("a,","b")。<br />但是你在请求到一个servlet的时候，却不需要去显式创建一个servlet的实例，然后再调用其doGet(request,response)方法，因为，你在请求到达之前，先到达容器，让后再到servlet,在到达servlet之前，并没有生成对应的request对象和response对象。所以此时，servlet并不知道要做什么。<br />问题来了，<br />request从哪来？<br />response从哪来？<br />是你封装的吗？<br />其实，此时的请求由容器接收，并封装和创建对应的request和response对象，然后把传入到servlet对象里面。<br />也就是说，在你动态的请求之前，这个依赖并不存在。<br />请求之后，容器封装之后的对象才有了依赖，这是个动态的依赖。然后才会注入到servlet里面。<br /><br />这就是为什么是动态依赖，是依赖注入。<br />我对依赖的一点粗浅理解。<br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/127462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-07-02 11:35 <a href="http://www.blogjava.net/zhyiwww/archive/2007/07/02/127462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初学spring容易碰到的问题</title><link>http://www.blogjava.net/zhyiwww/archive/2007/06/30/127292.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Sat, 30 Jun 2007 15:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/06/30/127292.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/127292.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/06/30/127292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/127292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/127292.html</trackback:ping><description><![CDATA[   <br />开始学习Spring了，想做第一个程序测试一下，所以就从网上找到了一个例子，代码如下，<br />（先写好了HelloBean)<br /> public static void main(String[] args) throws IOException {<br />        InputStream is = new FileInputStream("bean.xml");<br />        BeanFactory factory = new XmlBeanFactory(is);<br />       <br />        HelloBean hello = (HelloBean) factory.getBean("helloBean");<br />        System.out.println(hello.getHelloWord());<br />    }<br />这段程序其实挺简单，但是，就是调试不能通过。可能会有两种错误：<br />第一，找不到bean.xml，因为你的文件位置放置，和你的代码导入有问题，也就是说没有找到对应的位置。<br />第二，new XmlBeanFactory(is)这个地方会出现错误。因为XmlBeanFactory的构造器要求的是一个Resource对象的实例，但是，现在是一个InputStream的实例，所以，程序调试不能通过。<br /><br />问题解决办法：<br />第一：如果你的bean.xml在src目录下面，那么可以使用InputStream in = ClassLoader.getSystemResourceAsStream("applicationContext.xml");的办法来取得流对象。<br />第二：我们可以封装一个Resource的实例，Resource是一个接口，其实现类是InputStreamResource,所以，可以创建一个InputStreamResource对象，实现对InputStream的封装。<br /><br />改进后的代码如下：<br />package org.zy.demo.spring.handle;<br /><br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.InputStream;<br /><br />import org.springframework.beans.factory.BeanFactory;<br />import org.springframework.beans.factory.xml.XmlBeanFactory;<br />import org.springframework.core.io.InputStreamResource;<br />import org.springframework.core.io.Resource;<br />import org.zy.demo.spring.bean.Hello;<br /><br />public class HelloHandle {<br /><br />    public static void main(String[] args){<br />        <br />    <br />            InputStream in = ClassLoader.getSystemResourceAsStream("applicationContext.xml");<br />            System.out.println(in);<br />            <br />            Resource r = new InputStreamResource(in);<br />            <br />            XmlBeanFactory fac = new XmlBeanFactory(r);<br />            System.out.println(fac);<br />            <br />            Hello hello = (Hello)fac.getBean("hello");<br />            System.out.println(hello);<br />            <br />            System.out.println(hello.getHellStr());<br />    }<br />    <br />}<br /><br />Hello 的代码：<br />package org.zy.demo.spring.bean;<br /><br />public class Hello {<br />    String hellStr = "hello,zhangyi";<br /><br />    public String getHellStr() {<br />        return hellStr;<br />    }<br /><br />    public void setHellStr(String hellStr) {<br />        this.hellStr = hellStr;<br />    }<br />   <br />}<br />Bean配置文件为：<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt;<br /><br />&lt;beans&gt;<br />    &lt;bean id="hello" class="org.zy.demo.spring.bean.Hello"&gt;<br />        &lt;property name="hellStr"&gt;<br />            &lt;value&gt;Hello,this is the first spring demo of zhangyi.&lt;/value&gt;<br />        &lt;/property&gt;<br />    &lt;/bean&gt;<br /><br /><br />&lt;/beans&gt;<br />此文件放置在src目录下。<br />此程序调试通过，结果如下：<br />java.io.BufferedInputStream@1a33d48<br />log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).<br />log4j:WARN Please initialize the log4j system properly.<br />org.springframework.beans.factory.xml.XmlBeanFactory defining beans [hello]; root of BeanFactory hierarchy<br />org.zy.demo.spring.bean.Hello@941db6<br />Hello,this is the first spring demo of zhangyi.<br /><br />希望对spring的初学者有所帮助。<br /><br /><br />===============================================================================================<br /><br />我的第二个测试小程序，代码如下：<br />    public void sayHello2(){<br />        ApplicationContext ctx = new FileSystemXmlApplicationContext("/src/applicationContext.xml");<br />        System.out.println(ctx);<br />        <br />        Hello hello = (Hello)ctx.getBean("hello");<br />        System.out.println(hello);<br />        <br />        System.out.println(hello.getHellStr());<br />        <br />    }<br />这一段程序和上面的代码差不多。容易出错的地方在于<font color="#000080"><b>目录，<br />我的目录结构如下图：<br /><img src="http://www.blogjava.net/images/blogjava_net/zhyiwww/spring/directory.png" alt="directory.png" border="0" height="493" width="292" /><br />因为，默认情况下，程序查找文件的目录是你的工作目录，在eclipse下，就是工程的目录<br />但是，我们的xml文件是在src目录下面，所以，在路经上要使用/src/applicationContext.xml<br /><br /></b></font><br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/127292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-06-30 23:38 <a href="http://www.blogjava.net/zhyiwww/archive/2007/06/30/127292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于异常处理的一点体会</title><link>http://www.blogjava.net/zhyiwww/archive/2007/06/20/125344.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 20 Jun 2007 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/06/20/125344.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/125344.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/06/20/125344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/125344.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/125344.html</trackback:ping><description><![CDATA[
		<h2>
				<span style="font-family: 黑体;">
						<br />
				</span>
		</h2>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span lang="EN-US">
						<span style="">       </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;" lang="EN-US">/**</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style=""> </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;" lang="EN-US">*</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
				</span>
				<span style="font-size: 10pt; font-family: 宋体; color: teal;">在放大和缩小的时候同步放大和缩小导航线路</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style=""> </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;" lang="EN-US">*/</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">Route.</span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">prototype</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">.zoomLine = </span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">function</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">(){<span style=""></span></span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: olive;" lang="EN-US">//alert("zoom</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: olive;" lang="EN-US">line</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: olive;" lang="EN-US">");</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(50, 128, 50);" lang="EN-US">/*</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
						<span style=""> </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(50, 128, 50);" lang="EN-US">*</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
				</span>
				<span style="font-size: 10pt; font-family: 宋体; color: rgb(50, 128, 50);">取得所有的线段的数组</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
						<span style=""> </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(50, 128, 50);" lang="EN-US">*/</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">
						</span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">var</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US"> lcs = </span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">this</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">.getAllLineClips();</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: olive;" lang="EN-US">//alert(lcs.length);</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: olive;" lang="EN-US">//</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
				</span>
				<span style="font-size: 10pt; font-family: 宋体; color: olive;">修改所有线段的起点和终点坐标</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">this</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">.changeLineClipsCoors(lcs);<span style=""></span></span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">}</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">Route.</span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">prototype</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">.changeLineClipsCoors
= </span>
				<b>
						<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(0, 0, 200);" lang="EN-US">function</span>
				</b>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">(lineClipsCoords){</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="text-align: left;" align="left">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<span style="">    </span>
				</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal">
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-size: 10pt; font-family: 宋体; color: black;">由上面的代码我们可以知道，调用关系为</span>
				<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<span style="font-size: 12pt;" lang="EN-US">
				<o:p>
				</o:p>
		</span>
		<span style="font-size: 12pt;" lang="EN-US">
				<o:p>
				</o:p>
		</span>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">
						<img src="http://www.blogjava.net/images/blogjava_net/zhyiwww/struts/exception.JPG" alt="exception.JPG" border="0" height="238" width="511" />
						<br />
				</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">所以是<span lang="EN-US">zoomLine</span>调用<span lang="EN-US">changeLineClipsCoors,</span>那么我们可以认为<span lang="EN-US">changeLineClipsCoors</span>是底层程序，<span lang="EN-US">zoomLine</span>是高层程序。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">在异常处理的时候，我们可以在高层程序里面处理，也可以在底层程序里面处理，那么到底该什么时候处理比较好呢？<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">在这段程序里面，我们可以认为是一样的，因为，对于客户端来说，那个方法都可以给用户反馈错误信息。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">但是在服务器端的时候就不一样了。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">比如：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 新宋体;">在<span lang="EN-US">action LoginAction</span>中，我们可能要取得客户端用户的输入，还有从数据库去数据，还要验证用户输入的正确性。这中间可能出现的异常就很多了。我列举一下：<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;">
				<!--[if !supportLists]-->
				<span style="font-family: Wingdings;" lang="EN-US">
						<span style="">l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        
</span></span>
				</span>
				<!--[endif]-->
				<span style="font-family: 新宋体;">用户名正确，密码错误<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;">
				<!--[if !supportLists]-->
				<span style="font-family: Wingdings;" lang="EN-US">
						<span style="">l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        
</span></span>
				</span>
				<!--[endif]-->
				<span style="font-family: 新宋体;">用户名错误，密码正确<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;">
				<!--[if !supportLists]-->
				<span style="font-family: Wingdings;" lang="EN-US">
						<span style="">l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        
</span></span>
				</span>
				<!--[endif]-->
				<span style="font-family: 新宋体;">用户名错误，密码错误<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;">
				<!--[if !supportLists]-->
				<span style="font-family: Wingdings;" lang="EN-US">
						<span style="">l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        
</span></span>
				</span>
				<!--[endif]-->
				<span style="font-family: 新宋体;">数据库联接错误<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;">
				<!--[if !supportLists]-->
				<span style="font-family: Wingdings;" lang="EN-US">
						<span style="">l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">        
</span></span>
				</span>
				<!--[endif]-->
				<span style="font-family: 新宋体;">系统未知异常等<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">在分层上，我们可能在业务逻辑层，也可以在数据层，都可以捕捉异常，然后处理异常，但是，这些异常处理后如何通知用户呢，没有办法，只能，我们往往就在底层的调用上抛出异常，然后再高层的调用上，处理异常。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">比如，在</span>
				<span lang="EN-US">action</span>
				<span style="font-family: 宋体;">上处理异常，就可以通过</span>
				<span lang="EN-US">view</span>
				<span style="font-family: 宋体;">层来告诉用户发生了什么异常或错误。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-family: 宋体;">一个简单的道理，在</span>
				<span lang="EN-US">jdk</span>
				<span style="font-family: 宋体;">里面都是抛出异常，而不处理异常，而在我们的程序里面来处理异常，就是这个道理。</span>
		</p>
		<p class="MsoNormal">
				<span style="font-size: 15pt; font-family: 宋体; color: fuchsia;">把异常抛给你的高层应用，在高层上来处理异常。</span>
				<span style="font-size: 15pt; color: fuchsia;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/125344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-06-20 14:49 <a href="http://www.blogjava.net/zhyiwww/archive/2007/06/20/125344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码的切片学习（四）--配置模块初始化的实现</title><link>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97329.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 01 Feb 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97329.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/97329.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/97329.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/97329.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts源码的切片学习（四）--配置模块初始化的实现<br>这个部分，主要是学习了一下配置模块的初始化过程，<br>是从大的方面来看，没有详细的探究其细节实现。&nbsp;&nbsp;<a href='http://www.blogjava.net/zhyiwww/archive/2007/02/01/97329.html'>阅读全文</a><img src ="http://www.blogjava.net/zhyiwww/aggbug/97329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-02-01 17:34 <a href="http://www.blogjava.net/zhyiwww/archive/2007/02/01/97329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码的切片学习（五）--再谈资源模块的初始化</title><link>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97328.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 01 Feb 2007 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97328.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/97328.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/02/01/97328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/97328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/97328.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts源码的切片学习（五）--再谈资源模块的初始化<br>这次，从配置模块的初始化开始，着重学习了一下Struts是如何把解析配置文件<br>解析成对象的，并以此说明了资源配置文件的初始化过程。&nbsp;&nbsp;<a href='http://www.blogjava.net/zhyiwww/archive/2007/02/01/97328.html'>阅读全文</a><img src ="http://www.blogjava.net/zhyiwww/aggbug/97328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2007-02-01 17:32 <a href="http://www.blogjava.net/zhyiwww/archive/2007/02/01/97328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码的切片学习（三）-- ActionServlet的初始化细节</title><link>http://www.blogjava.net/zhyiwww/archive/2007/01/29/96549.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Mon, 29 Jan 2007 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2007/01/29/96549.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/96549.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2007/01/29/96549.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/96549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/96549.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<h1 style="text-align: center;" align="center">
				<span lang="EN-US">Struts</span>
				<span style="font-family: 宋体;">源码的切片学习（三）</span>
		</h1>
		<h1 style="text-align: center;" align="center">
				<span style="font-family: 宋体;">——</span>
				<span lang="EN-US">ActionServlet</span>
				<span style="font-family: 宋体;">的初始化细节</span>
		</h1>
		<div style="border-style: none none solid; border-color: -moz-use-text-color -moz-use-text-color windowtext; border-width: medium medium 1pt; padding: 0cm 0cm 1pt;">
				<p class="MsoNormal" style="border: medium none ; padding: 0cm;">
						<span lang="EN-US">
								<o:p>
										<br />
								</o:p>
						</span>
				</p>
		</div>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin-left: 105pt;">
				<b style="">
						<span style="font-size: 12pt; font-family: &quot;Arial Black&quot;;" lang="EN-US">Author</span>
				</b>
				<b style="">
						<span style="font-size: 12pt;" lang="EN-US">
								<span style="">     </span>:<span style="">      </span><span style="color: navy;">zhyiwww</span><o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="margin-left: 105pt;">
				<b style="">
						<span style="font-size: 12pt; font-family: &quot;Arial Black&quot;;" lang="EN-US">E-Mail</span>
				</b>
				<b style="">
						<span style="font-size: 12pt;" lang="EN-US">
								<span style="">      </span>:<span style="">      </span><span style="color: navy;"><a href="mailto:zhyiwww@163.com"><span style="color: navy; text-decoration: none;">zhyiwww@163.com</span></a></span><o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="margin-left: 105pt;">
				<b style="">
						<span style="font-size: 12pt; font-family: &quot;Arial Black&quot;;" lang="EN-US">Date</span>
				</b>
				<b style="">
						<span style="font-size: 12pt;" lang="EN-US">
								<span style="">          </span>:<span style="">      </span><span style="color: navy;">2007-1-10</span><o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="margin-left: 105pt;">
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: blue;">转载请注明出处</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: &quot;Arial Black&quot;; color: blue;" lang="EN-US"> www.BlogJava.net/zhyiwww<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="text-align: center;" align="center">
				<b style="">
						<span style="font-size: 12pt; font-family: &quot;Arial Black&quot;; color: fuchsia;" lang="EN-US">(copyright by @ zhangyi)<o:p></o:p></span>
				</b>
		</p>
		<div style="border-style: none none solid; border-color: -moz-use-text-color -moz-use-text-color windowtext; border-width: medium medium 1pt; padding: 0cm;">
				<p class="MsoNormal" style="border: medium none ; padding: 0cm;">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</p>
		</div>
		<p class="MsoNormal">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">在</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">ActionServlet</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">初始化的过程中，有一个函数</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">initServlet()</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">用来初始化此</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">ActionServlet,</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">主要是初始化其</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">url,</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">也就是到底此</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">ActionServlet</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">接收和处理那些</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">url</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">。</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: black;" lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; font-family: 宋体; color: black;">我们先看一下代码：</span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">protected void initServlet() throws
ServletException {<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<span style="">       
</span>// Remember our servlet name<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<span style="">       
</span>this.servletName = getServletConfig().getServletName();<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<o:p> </o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<span style="">       
</span>// Prepare a Digester to scan the web application deployment descriptor<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: green;" lang="EN-US">
								<span style="">      
</span>
						</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: blue;" lang="EN-US">
								<span style=""> </span>Digester digester = new Digester();<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: blue;" lang="EN-US">
								<span style="">      
</span>
						</span>
				</b>
				<b style="">
						<span style="font-size: 12pt; color: fuchsia;" lang="EN-US">
								<span style=""> </span>
						</span>
				</b>
				<b style="">
						<span style="font-size: 14pt; color: fuchsia;" lang="EN-US">digester.push(this);<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: blue;" lang="EN-US">
								<span style="">       
</span>digester.setNamespaceAware(true);<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font-size: 12pt; color: blue;" lang="EN-US">
								<span style="">       
</span>digester.setValidating(false);<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal">
				<b style="">
						<span style="font