﻿<?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-程序员成长史-随笔分类-Jakarta Commons</title><link>http://www.blogjava.net/Good-Game/category/24788.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 05 Sep 2007 10:05:14 GMT</lastBuildDate><pubDate>Wed, 05 Sep 2007 10:05:14 GMT</pubDate><ttl>60</ttl><item><title>jxpath 学习笔记</title><link>http://www.blogjava.net/Good-Game/archive/2007/08/13/136318.html</link><dc:creator>G_G</dc:creator><author>G_G</author><pubDate>Mon, 13 Aug 2007 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/Good-Game/archive/2007/08/13/136318.html</guid><wfw:comment>http://www.blogjava.net/Good-Game/comments/136318.html</wfw:comment><comments>http://www.blogjava.net/Good-Game/archive/2007/08/13/136318.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Good-Game/comments/commentRss/136318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Good-Game/services/trackbacks/136318.html</trackback:ping><description><![CDATA[get set 参考 BeanUtil 包 和 Xpath <br /><font color="#006400">http://commons.apache.org/</font>  的 jxpath <a href="http://commons.apache.org/jxpath/"></a><strong><a href="http://commons.apache.org/jxpath/users-guide.html">User's Guide</a><br /><br /></strong>类的加载 <br /><pre><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">JXPathContext context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(<font color="#0000ff"> obj </font>);<br /><font color="#006400">//和 xpath 的 范围确定</font><br /></span></div><br />一般取值 存值  <br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">String fName </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> (String)context.getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">firstName</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">); <font color="#006400">//setValue</font><br /><font color="#006400">//参考 http://www.blogjava.net/Good-Game/archive/2007/08/10/135739.html</font><br /></span></div><br />一般的统计和使用  c  为 list [id,name,.....]<br /><br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">        JXPathContext context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(c);<br />        System.out.println( context.getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">count( .[name='oo' and id='1' ] )</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">) ); </span><span style="COLOR: rgb(0,0,0)"><font color="#006400">//对象 name=oo 和 id=1的有多少个</font></span><span style="COLOR: rgb(0,0,0)"><br />        System.out.println( context.getValue("sum( .[name='oo' and id='1' ]/id )") );<font color="#006400">//对象name=oo和id=1的所有id相加</font><br /></span></div><br /><br /><br /><br /><br />得到集合<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)"> Iterator threeBooks </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> context.iterate(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">books[position() &lt; 4]</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><font color="#006400">//xpath 的位置函数 position 其他函数参考 http://www.w3.org/TR/xpath  <br /></font></span><font color="#008000">//4 Core Function Library</font><font color="#006400"><span style="COLOR: rgb(0,0,0)"></span></font></div><br />xpath 使用<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)"> Employee {<br />    </span><span style="COLOR: rgb(0,0,255)">private</span><span style="COLOR: rgb(0,0,0)"> Map addressMap </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> HashMap();<br />    {<br />        addressMap.put(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">home</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Address(<img src="http://www.blogjava.net/images/dot.gif" />));<br />        addressMap.put(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">office</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Address(<img src="http://www.blogjava.net/images/dot.gif" />));<br />    }<br />    </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> Map getAddresses(){<br />       </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> addressMap;<br />    }<br />    <img src="http://www.blogjava.net/images/dot.gif" /><br /> }<br /> String homeZipCode </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> (String)context. getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><font color="#000080"><span style="COLOR: rgb(0,0,0)">addresses[@name='home']/zipCode</span></font><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><font color="#008000">//使用的是 addressMap map 的 key = home 的Address类属性的 zipCode</font></span><font color="#008000"><span style="COLOR: rgb(0,0,0)"></span></font></div><br />xml 在程序 与 xpath 的切入点 <br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">    </span><span style="COLOR: rgb(0,0,255)">&lt;?</span><span style="COLOR: rgb(255,0,255)">xml version="1.0" </span><span style="COLOR: rgb(0,0,255)">?&gt;</span><span style="COLOR: rgb(0,0,0)"><br />    </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">vendor</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />      </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">location </span><span style="COLOR: rgb(255,0,0)">id</span><span style="COLOR: rgb(0,0,255)">="store101"</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />        </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">address</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />          </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">street</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">Orchard Road</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">street</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />        </span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">address</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />      </span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">location</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><br />      </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">location </span><span style="COLOR: rgb(255,0,0)">id</span><span style="COLOR: rgb(0,0,255)">="store102"</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />        </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">address</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />          </span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">street</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">Tangerine Drive</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">street</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />        </span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">address</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />      </span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">location</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br />    </span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">vendor</span><span style="COLOR: rgb(0,0,255)">&gt;</span></div><br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)"> Company {<br />    </span><span style="COLOR: rgb(0,0,255)">private</span><span style="COLOR: rgb(0,0,0)"> Container locations </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">null</span><span style="COLOR: rgb(0,0,0)">;<br /><br />    </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> Container getLocations(){<br />        </span><span style="COLOR: rgb(0,0,255)">if</span><span style="COLOR: rgb(0,0,0)"> (locations </span><span style="COLOR: rgb(0,0,0)">==</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">null</span><span style="COLOR: rgb(0,0,0)">){<br />            URL url </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> getClass().getResource(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">Vendor.xml</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br />            locations </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> XMLDocumentContainer(url);<br />        }<br />        </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> locations;<br />    }<br /> }<br /> <img src="http://www.blogjava.net/images/dot.gif" /><br /> context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Company());<br /> <img src="http://www.blogjava.net/images/dot.gif" /><br /> String street </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> (String)context.getValue(<br />                </span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">locations/vendor/location[@id = 'store102']//street</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><font color="#006400">// 类Container的 属性 locations 头 vendor(xml内) .....</font></span><font color="#006400"><span style="COLOR: rgb(0,0,0)"></span></font></div><font color="#000000"><br /></font><font color="#000000">建立 Path工厂 就是 自定义字符串 得到 自定义类<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)"> AddressFactory </span><span style="COLOR: rgb(0,0,255)">extends</span><span style="COLOR: rgb(0,0,0)"> AbstractFactory {<br />    </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">boolean</span><span style="COLOR: rgb(0,0,0)"> createObject(JXPathContext context, Pointer pointer,<br />                                Object parent, String name, </span><span style="COLOR: rgb(0,0,255)">int</span><span style="COLOR: rgb(0,0,0)"> index){<br />     </span><span style="COLOR: rgb(0,0,255)">if</span><span style="COLOR: rgb(0,0,0)"> ((parent </span><span style="COLOR: rgb(0,0,255)">instanceof</span><span style="COLOR: rgb(0,0,0)"> Employee) </span><span style="COLOR: rgb(0,0,0)">&amp;&amp;</span><span style="COLOR: rgb(0,0,0)"> name.equals(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">address</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">){<br />       ((Employee)parent).setAddress(</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Address());<br />       </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">true</span><span style="COLOR: rgb(0,0,0)">;<br />     }<br />     </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">false</span><span style="COLOR: rgb(0,0,0)">;<br />   }<br /> }<br /><br /> JXPathContext context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(<font color="#ff1493">emp</font>);<br /> context.setFactory(</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> AddressFactory());<br /> context.createPath(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">address</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /> context.createPathAndSetValue(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">address/zipCode</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">90190</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><font color="#006400">// emp 类就是 createObject方法中的 Object<br />//运行解析到 address字符 就进入 if中</font><br /></span></div><br />建立内参<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)"> JXPathContext context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(auth);<br /> context.getVariables().declareVariable(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">index</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Integer(</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">));<br /></span><pre> context.setValue("$index", new Integer(3));</pre><span style="COLOR: rgb(0,0,0)"> Book secondBook </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> (Book)context.getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">books[<font color="#0000ff">$index</font>]</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><font color="#006400">// $index 为 3 </font><br /></span></div><br />确定范围 </font><font size="+0"><font color="#000000"><span style="COLOR: rgb(0,0,0)">Pointer </span></font></font><font color="#000000"><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><span style="COLOR: rgb(0,0,0)"> JXPathContext context </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> JXPathContext.newContext(bean);<br /> Pointer addressPtr </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> context.getPointer(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">/employees[1]/addresses[2]</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /> JXPathContext relativeContext </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> <br />              context.getRelativeContext(addressPtr);</span><span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,128,0)"><br /></span><span style="COLOR: rgb(0,0,0)"> String zipCode </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"> (String)relativeContext.getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">zipCode</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<font color="#006400"><br />//可以用 xpath 确定范围 很好 呵呵</font><br /></span></div><br />方法的联系应用<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)"> Formats {<br />    </span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">static</span><span style="COLOR: rgb(0,0,0)"> String date(Date d, String pattern){<br />        </span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)"> </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> SimpleDateFormat(pattern).format(d);<br />    }<br />    <img src="http://www.blogjava.net/images/dot.gif" /><br /> }                                                     <br /> context.setFunctions(</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> ClassFunctions(Formats.</span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">format</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">));<br /><font color="#006400"> //方法的设置 format </font><br /> <img src="http://www.blogjava.net/images/dot.gif" /><br /> context.getVariables().declareVariable(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">today</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">, </span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)"> Date());<br /> String today </span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)"><br />     (String)context.getValue(</span><span style="COLOR: rgb(0,0,0)">"</span><font color="#ff0000"><b><span style="COLOR: rgb(0,0,0)">format:date($today, 'MM/dd/yyyy')</span></b></font><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);</span></div><br /><br /><font color="#006400"><b>心得： 代码可以写成什么样呢~~ (JXpath)</b></font><br /><br /></font></pre><img src ="http://www.blogjava.net/Good-Game/aggbug/136318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Good-Game/" target="_blank">G_G</a> 2007-08-13 10:58 <a href="http://www.blogjava.net/Good-Game/archive/2007/08/13/136318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jakarta Commons BeanUtils 学习</title><link>http://www.blogjava.net/Good-Game/archive/2007/08/10/135739.html</link><dc:creator>G_G</dc:creator><author>G_G</author><pubDate>Fri, 10 Aug 2007 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/Good-Game/archive/2007/08/10/135739.html</guid><wfw:comment>http://www.blogjava.net/Good-Game/comments/135739.html</wfw:comment><comments>http://www.blogjava.net/Good-Game/archive/2007/08/10/135739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Good-Game/comments/commentRss/135739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Good-Game/services/trackbacks/135739.html</trackback:ping><description><![CDATA[参考：<font color="#006400">http://www.duduwolf.com/wiki/2007/296.html<br />      http://www.chinaitpower.com/A/2005-07-03/150232.html</font><br />1)普通的Bean处理  不管是什么Set参数为3个 ( 对象本身, 属性名或属性内位置, 值 ) <span style="color: rgb(0, 0, 0);"><font color="#008000">//list的</font></span><span style="color: rgb(0, 0, 0);"><font color="#008000">add</font></span><span style="color: rgb(0, 0, 0);"><font color="#008000">有点特别<br />                            <font color="#000000">Get</font></font></span>参数为2个<span style="color: rgb(0, 0, 0);"><font color="#008000"><font color="#000000">( </font></font></span>对象本身, 属性名或属性内位置<span style="color: rgb(0, 0, 0);"><font color="#008000"><font color="#000000"> )</font></font></span><font color="#000000"></font><br />   <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">        Employee em </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> Employee();  <font color="#008000">//String name; String[] ss;  Map map; List list; </font><br />        BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">name</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">liukaiyi</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);  <font color="#008000">//String set </font><br />        BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ss</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> String[]{</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">}); </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//String[] set </font></span><br /><span style="color: rgb(0, 0, 0);">            BeanUtils.setProperty(em,"ss[2]","google");  <font color="#008000">//String[2] set</font><br /><br />        BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">map</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> HashMap());   </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//Map set  </font></span><br /><span style="color: rgb(0, 0, 0);">            BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">map(key)</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">value</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);  </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//Map.put(Key,Value)</font></span><br /><span style="color: rgb(0, 0, 0);">            <br />        BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">list</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> ArrayList( Arrays.asList( </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> Object[</span><span style="color: rgb(0, 0, 0);">20</span><span style="color: rgb(0, 0, 0);">] ) )); </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//List有点特别 </font></span><br /><span style="color: rgb(0, 0, 0);">            BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">list[0]</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">list</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);       </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//不可以直接添加？？？</font></span><br /><span style="color: rgb(0, 0, 0);">            <br />        BeanUtils.setProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">avg</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">23</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);       </span><span style="color: rgb(0, 0, 0);"><font color="#008000">//int set</font></span><br /><span style="color: rgb(0, 0, 0);">                <br />        <br />        System.out.println( BeanUtils.getSimpleProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">name</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">) );    </span><span style="color: rgb(0, 0, 0);"><font color="#008000"></font></span><br /><span style="color: rgb(0, 0, 0);">        System.out.println( BeanUtils.getProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ss[2]</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">) ); </span><span style="color: rgb(0, 0, 0);"></span><br /><span style="color: rgb(0, 0, 0);">        System.out.println( BeanUtils.getProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">map(key)</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">) ); </span><span style="color: rgb(0, 0, 0);"></span><br /><span style="color: rgb(0, 0, 0);">        <br />        System.out.println( BeanUtils.getProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">list[0].class</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">) );  </span><span style="color: rgb(0, 0, 0);"><font color="#008000">// 取的是 ==list.get(0).getClass() </font></span><br /><span style="color: rgb(0, 0, 0);">        <br />        System.out.println( BeanUtils.getProperty(em,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">avg</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">) );  <br /></span></div><br />2)动态属性<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">定义动态属性集</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);"> DynaProperty[] props </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DynaProperty[]{<br />    </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DynaProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">address</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, java.util.Map.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">),<br />    </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DynaProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">subordinate</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, mypackage.Employee[].</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">),<br />    </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DynaProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">firstName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, String.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">),<br />    </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DynaProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">lastName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,  String.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">)<br />      };<br /> </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">创建动态类来设定动态属性值</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    BasicDynaClass dynaClass </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> BasicDynaClass(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">employee</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">, props);<br />    DynaBean employee </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> dynaClass.newInstance();<br />    employee.set(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">address</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> HashMap());<br />    employee.set(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">subordinate</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> mypackage.Employee[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">]);<br />    employee.set(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">firstName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Fred</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />    employee.set(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">lastName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Flintstone</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><br /><font color="#006400">//也可以同上一样 提供统一 的Get Set 还是 字符操作 ^o^  哈哈</font><br />         BeanUtils.setProperty(bean,"address",<font color="#0000ff">new</font> HashMap());<br />             BeanUtils.setProperty(bean,"address(ads1)","江西");<br />         BeanUtils.setProperty(bean,"name","liu");<br />         BeanUtils.setProperty(bean,"subordinate",<font color="#0000ff">new</font> String[3]);<br />             BeanUtils.setProperty(bean,"subordinate[1]","heha");<br />         System.out.println(  BeanUtils.getProperty(bean,"address(ads1)") );<br />         System.out.println(  BeanUtils.getProperty(bean,"name") );<br />         System.out.println(  BeanUtils.getProperty(bean,"subordinate[1]") );<br /></span></div><br />3）JDBC 扩展<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"> Connection conn </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> <img src="http://www.blogjava.net/images/dot.gif" />;<br />    Statement stmt </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> conn.createStatement();<br />    ResultSet rs </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> stmt.executeQuery<br />    (</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">select accountid, name from customers</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />    Iterator rows </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> ResultSetDynaClass(rs)).iterator(); <font color="#006400"> //</font></span><font color="#006400">ResultSetDynaClass(java.sql.ResultSet resultSet)</font><br /><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);"> (rows.hasNext()) {<br /> </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">利用动态bean进行输出</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    DynaBean row </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (DynaBean) rows.next();   <font color="#006400">//连实体Bean都可以不要了   </font><br />        BeanUtils.copyProperties( <font color="#ffa500"><b>MyBean ,row </b></font>); <font color="#006400"> //  bean&lt;--dynaBean 就这样去得到值 </font></span><span style="color: rgb(0, 0, 0);"><font color="#006400">^o^  <br />           <font color="#000000">MyBean.get</font></font></span><span style="color: rgb(0, 0, 0);">Accountid();  ....            </span><span style="color: rgb(0, 0, 0);"><font color="#006400"><br /></font></span><span style="color: rgb(0, 0, 0);">    }<br />    rs.close();<br />    stmt.close();</span></div><br />4)HttpServletRequest 扩展<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">    HttpServletRequest request </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> <img src="http://www.blogjava.net/images/dot.gif" />;<br />    MyBean bean </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> <img src="http://www.blogjava.net/images/dot.gif" />;<br />    HashMap map </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> HashMap();<br />    Enumeration names </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> request.getParameterNames();<br />    </span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);"> (names.hasMoreElements()) {<br />      String name </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) names.nextElement();<br />      map.put(name, request.getParameterValues(name));<br />    }<br />    BeanUtils.populate(bean, map);</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">bean&lt;--map  struts好象是就用这个 Form<br /></span></div><br /><img src ="http://www.blogjava.net/Good-Game/aggbug/135739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Good-Game/" target="_blank">G_G</a> 2007-08-10 10:36 <a href="http://www.blogjava.net/Good-Game/archive/2007/08/10/135739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>