<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[破土的春笋]]></title>
<link>http://www.51spread.com/blog/</link>
<description><![CDATA[竹山新雨后，春笋破土多。]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[lovecode@gmail.com(Charles)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>破土的春笋</title> 
	<url>http://www.51spread.com/blog/images/logos.gif</url> 
	<link>http://www.51spread.com/blog/</link> 
	<description>破土的春笋</description> 
</image>

			<item>
			<link>http://www.51spread.com/blog/default.asp?id=288</link>
			<title><![CDATA[Math.Round()方法的四舍五入(.NET)]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[.Net Develop]]></category>
			<pubDate>Wed,03 Dec 2008 13:18:38 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=288</guid>	
		<description><![CDATA[<span style="color:Red">Math.Round</span>这个函数的解释是将值按指定的小数位数舍入，并不就是四舍五入。这种舍入有时称为<span style="color:Red">就近舍入或四舍六入五成双</span>。<strong>如果 a 的小数部分正好处于两个整数中间，其中一个整数为偶数，另一个整数为奇数，则返回偶数。</strong><br/>　　从就近舍入或四舍六入五成双这句话来理解，就近舍入？没说清楚，四舍六入！嗯，没错0.4和0.6结果都符合四舍六入要求，那么五成双什么意思呢？我听过，<span style="color:Red">四舍六入五凑偶</span>的说法，实质上应该是一样的！五凑偶是什么意思呢？<span style="color:Red">五凑偶是说前面是奇数，进一位，是偶数舍掉。</span><br/>　　为什么要<span style="color:Red">奇进偶舍</span>呢？这就验证了MSDN中另外一句话的涵义：<strong>它可以将因单方向持续舍入中点值而导致的舍入误差降到最低。</strong><br/><br/>如何去实现四舍五入这个功能呢？<br/>请调用&nbsp;&nbsp;<span style="color:Red">Math.Round(Decimal, MidpointRounding) </span>重载！~哦，原来还有重载的方法可用，MidpointRounding在两个数字之间时如何舍入的规范，这是MSDN对其MidpointRounding所做的解释，在两个数字之间时这句我的理解是如果小数位最大值的一半的值，就像0.5这个5这个小数是所谓的中间值吧~反正是个规范，我们利用实现就可以了。规范MidpointRounding中它有2个成员，一个是ToEven还有个是AwayFromZero。<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">//四舍五入&nbsp;&nbsp;<br/>Math.Round(0.5,MidpointRounding.AwayFromZero)</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=287</link>
			<title><![CDATA[Ext使用中的一些小精髓]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Mon,01 Dec 2008 21:24:04 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=287</guid>	
		<description><![CDATA[<span style="font-size:14pt"><strong>1.消除Ext中的S.gif影响</strong></span><br/>　　有时候脱机打开使用Ext编写的网页，在一片小图片的四周会有一个框框，让界面看上去即不舒服！我们只需在代码中加上一句代码就可以改变这种情况<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Ext.BLANK_IMAGE_URL = &#34;../images/s.gif&#34;; //你存放s.gif的位置</div></div><br/><br/><span style="font-size:14pt"><strong>2.显示验证提示信息</strong></span><br/>　　Ext提供了很好的验证机制，但有时候用户体验不是那么好，或者没有在页面上显示感叹号，或是显示在不是你希望的位置。下面的代码可以帮你实现<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><span style="color:Red">Ext.QuickTips.init(); <br/>Ext.form.Field.prototype.msgTarget = &#34;side&#34;;</span></div></div><br/><br/>Ext.form.Field.protytype.msgTarget有几种取值：<br/><span style="color:Red">qtip</span>： 当鼠标移动组件上面时显示<br/><br/><span style="color:Red">title</span>：浏览器的弹出对话框中<br/><br/><span style="color:Red">under</span>：显示在组件下方<br/><br/><span style="color:Red">side</span>：显示在组件右方<br/><br/>[element id]：指定ID元素中<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=286</link>
			<title><![CDATA[extjs中文的一些疑问]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Sun,30 Nov 2008 18:58:37 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=286</guid>	
		<description><![CDATA[<strong>1、中文化问题，在 ext-all.js 后面，挂上 ext-lang-zh_CN.js 即可</strong>，如： <br/>Java代码 <br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;script type=&#34;text/javascript&#34; src=&#34;&lt;%=contextPath%&gt;/public/js/ext-base.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=&#34;text/javascript&#34; src=&#34;&lt;%=contextPath%&gt;/public/js/ext-all.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=&#34;text/javascript&#34; src=&#34;&lt;%=contextPath%&gt;/public/js/ext-lang-zh_CN.js&#34;&gt;&lt;/script&gt;</div></div><br/><br/><strong>2、对中文字体，要对默认的 css 加上修正，例如</strong>： <br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;LINK rel=&#34;stylesheet&#34; href=&#34;public/css/ext-all.css&#34;&gt; <br/>&lt;LINK rel=&#34;stylesheet&#34; href=&#34;public/css/ext-all-patch.css&#34;&gt;</div></div> <br/><img src="http://www.51spread.com/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.51spread.com/blog/attachments/month_0811/920081130185815.rar" target="_blank">ext-all-patch</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=285</link>
			<title><![CDATA[Extjs学习的初级笔记——xtype属性创建组件(四)]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Sun,30 Nov 2008 18:30:13 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=285</guid>	
		<description><![CDATA[<strong>Ext的每个组件都是有一个指定的<span style="color:Red">Xtype</span>属性值,通过该值就可以得到该组件的类型,同时也可以根据该组件来定义一个组件</strong> 例如:<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">{xtype:&#34;button&#34;,id:&#34;btnEnter&#34;,text:&#34;确定&#34;} //这就是定义了一个按钮的组件.<br/><br/>{xtype:&#34;field&#34;,id:&#34;txtName&#34;} //这就是定义了一个输入框的组件.<br/><br/>{xtype:&#34;field&#34;,id:&#34;txtPwd&#34;,inputType:&#34;password&#34;} //这就是定义了一个密码框的组件.</div></div><br/><br/>当然你可以不用xtype，用传统的关键字new来创建组件对象。 比如:<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">var btnEnter = new Ext.Button({id:&#34;btnEnter&#34;,text:&#34;确定&#34;} );//这就是定义了一个按钮的组件.<br/><br/>var txtName = new Ext.form.Textfield({id:&#34;txtName&#34;} );//这就是定义了一个输入框的组件.<br/><br/>var txtPwd&nbsp;&nbsp; = new Ext.form.Textfield({id:&#34;txtPwd&#34;,inputType:&#34;password&#34;}&nbsp;&nbsp;);//这就是定义了一个密码框的组件.</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=284</link>
			<title><![CDATA[Extjs学习的初级笔记——几个重要类(三)]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Sat,29 Nov 2008 10:02:22 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=284</guid>	
		<description><![CDATA[<span style="font-size:16pt"><span style="color:Red"><strong>BoxComponent</strong></span></span><br/>　　<span style="color:Red">BoxComponent </span>是另外一个重要的基类，<strong>该类从组件Component扩展</strong>，为任何要进行可视渲染和参与布局的组件提供了一致的、跨浏览器的箱子模型（Box Model）实现。BoxComponent负责调节大小和定位，自动处理各浏览器之间的差异，如外/内补丁、边框的问题，形成一个统一的箱子模型，以支持各种浏览器。<strong>2.0的一切容器类（container）扩展自BoxComponent。</strong><br/><span style="color:Red"><strong>容器模型Container Model</strong></span><br/><img src="http://www.51spread.com/blog/attachments/month_0811/42008112995347.gif" border="0" alt=""/><br/>Ext 2.0 Component/Container Class Hierarchy<br/><br/><span style="color:Red"><span style="font-size:16pt"><strong>容器 Container</strong></span></span><br/>　　一个组件如果有包含其它的组件，那么，容器Container便是这个组件奠基之石。该类提供了布局方面和调节大小、嵌套组所需的逻辑，并且提供一个基础性的加入组件协调机制。<strong>容器类不应该直接使用，其目的在于为一切可视的容器组件提供一个基类。</strong><br/><br/><span style="color:Red"><span style="font-size:16pt"><strong>面板 Panel</strong></span></span><br/>　　<span style="color:Red">面板Panel</span>是2.0最常用的容器，90％布局任务都离不开面板。面板用在排版布局上，如同一张白纸，完全是空白的矩形，没有可视内容。虽然这样，面板也提供了一些预留区域， 方便加入程序所需的UI界面，包括顶部或底部的工具条、菜单栏、头部区域、底部区域和躯干区域。同时内建可展开和可收缩行为的按钮，和其它不同任务预设的按钮。面板可轻松地下降到任意的容器或布局，当中定位或渲染的逻辑全部由Ext调控， <br/>　　下列是Ext 2.0面板最主要的几个子类：<span style="color:Red">GridPanel 、TabPanel 、TreePanel 、FormPanel </span><br/><br/><span style="color:Red"><span style="font-size:16pt"><strong>Window</strong></span></span><br/>　　<span style="color:Red">Window</span> 是一种可浮动的、可最小/最大化的、可复原的、可拖动的..等此类的特殊面板。其目的在于实现一种具有桌面风格的程序界面的基类。<br/><br/><strong><span style="color:Red"><span style="font-size:16pt">视见区Viewport</span></span></strong><br/>　　<span style="color:Red">视见区Viewport</span>是以<strong>document.body</strong>作容器的实用类，它会与浏览器视图自适应尺寸，是全屏幕应用的基础，如浏览器大小调节、布局重新计算的问题由该类自动完成。 <strong>注意</strong>视见区Viewport除了document.body不能渲染在其它的容器上，所以一个页面只能有一个视见区。<br/><br/><span style="color:Red"><span style="font-size:16pt"><strong>布局 Layouts</strong></span></span><br/><img src="http://www.51spread.com/blog/attachments/month_0811/l200811291026.gif" border="0" alt=""/><br/>Ext 2.0 Layout Class Hierarchy<br/><br/>　　Ext 2.0带来了一个重写编写的、企业级应用的布局管理系统。 共有<strong>10种风格的布局管理器</strong>，分别提供构建各种可能的程序布局基础。Ext调控了布局诸如size、定位、滚动条和其他的属性方面的问题，一如既往地简单，开箱即用。在容器也可无限嵌套布局、混合其他不同风格的布局。 <br/><br/>　　<strong>布局由容器内置创建，所以布局<span style="color:Red">不应通过</span>关键字new实例化这种方式直接使用</strong>。 有一种内部的机制，容器与布局能够很好地协调工作—<strong>只需配置好相关的参数，容器就会委托其负责的布局类工作</strong>。<span style="color:Red">创建容器的时候，你应选定一种布局的风格以及相关的配置，这两个配置是属性layout和属性layoutConfig。</span>举例：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">var panel = new Panel({<br/>title: &#39;My Accordion&#39;,<br/>layout: &#39;accordion&#39;,&nbsp;&nbsp;//在这个面板中所使用的布局样式<br/>layoutConfig: {<br/>animate: true&nbsp;&nbsp;&nbsp;&nbsp; //布局指定的配置项写在这里<br/>}<br/>// 其他Panel的选项<br/>});</div></div><br/>如果你不指定某个布局管理器，默认的是ContainerLayout类，不过这样很可能导致一些意料不到的情况发生，所以最好精确声明一下。 <br/>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=283</link>
			<title><![CDATA[Extjs学习的初级笔记——组件模型(二)]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Sat,29 Nov 2008 09:19:43 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=283</guid>	
		<description><![CDATA[　　<span style="color:Red">组件Component类</span>最初在1.x引入，却没有全面整合到框架中去。在2.0中，组件所赋予的能力有长足的改进和提升，使得其成为整个架构里最为基础的一个类(<strong>即Ext2.0中组件类是整个架构体系中最基础的类</strong>)。<br/>　　组件对象为组件的<span style="color:Red">创建</span>、<span style="color:Red">渲染</span>、<span style="color:Red">事件处理</span>、<span style="color:Red">状态管理</span>和<span style="color:Red">销毁</span>提供了统一的模型，Ext下面的每一个组件具备了这些由组件对象扩展出来的特性。这是2.0组件对象的关键特性： <br/><strong>显式声明构建器链和重写 Explicit constructor chaining and overriding</strong><br/>　　组件会将一个基础构造器连同配置传入到子类中。函数initComponent用于提供制定的构造器逻辑，只要在继承链上的某一个子类实现便可，所有的组件都遵从此方式。此时的子类就可在initComponent中对其设置相关的属性，实现具体的功能。<br/><strong>可调控的渲染 Managed rendering</strong><br/>　　2.0中，每个组件都支持<span style="color:Red">延时渲染</span>（lazy rendering），又称按需渲染（on-demand rendering）。渲染的调控是自动为你完好的。即使如此，你亦可以通过的<span style="color:Red">beforerender</span>和<span style="color:Red">render</span>事件控制渲染发生、结束，达到最为灵活的自定义调控。<br/><strong>可调控的销毁 Managed destruction</strong><br/>　　每一个组件具有<span style="color:Red">destroy</span>的函数，当组件不再需要时，Ext就负责组件的结束调控，如自动垃圾回收和摧毁组件元素。当然，销毁亦提供相应的事件，如<span style="color:Red">beforedestroy</span>和<span style="color:Red">destroy</span>可按照实际的情况作出逻辑处理。<br/><strong>管理声明自动化 Automatic state management</strong><br/>　　组件内建设置和获取状态（State）的功能，只要是全局对象<span style="color:Red">StateManager</span>和一个状态 Provider都初始化好，那么多数的组件都具有自动状态管理的能力。<br/><strong>组件常规行为的统一接口 Consistent interface for basic component behavior </strong><br/>　　一般常规的行为如隐藏、显示和激活、禁用均是组件的基本特性。如需要，这些都可由子类去重写或制定。<br/><strong>由组件管理器负责的可用调配 Availability via ComponentMgr</strong><br/>　　Ext的每一个组件在创建的时候就会由组件管理器登记注册，即你可随时获取任何组件，只需调用<span style="color:Red">Ext.getCmp(&#39;id&#39;)</span> 。 <br/><strong>支持插件 Plugin support</strong><br/>　　现在任何的组件可以<strong>通过插件的形式来扩展</strong>了。插件实质是带有<span style="color:Red">init</span>方法的一种类。该方法会有一个单独的参数（类型为Ext.Component）传入到其中。<span style="color:Red">插件可通过组件的plugins配置项指定</span>。当组件创建时，如果有插件可用，组件就会调用每个插件上的init方法，传递自身的引用作为参数。 每个插件之后可调用方法或响应组件的事件以实现自身的功能。<br/><br/><strong><span style="font-size:16pt">组件的生存周期Component Life Cycle</span></strong><br/><strong><span style="color:Red"><span style="font-size:15pt">初始化Initialization</span></span></strong><br/><strong>1.配置项对象生效了</strong> The config object is applied.<br/>　　组件对象的构造器会把全部的配置项传入到其子类中去，并且进行下列所有的步骤。 <br/><strong>2.组件的底层事件创建了</strong>The base Component events are cr&#101;ated<br/>　　这些事件由组件对象负责触发。事件有enable, disable, beforeshow, show, beforehide, hide, beforerender, render, beforedestroy, destroy （参阅Component API文档完整的内容）。 <br/><strong>3.组件在组件管理器里登记了</strong>The component is registered in ComponentMgr<br/>　　<span style="color:Red">initComponent</span>这方法总是使用在子类中，就其本身而论，该方法是一个模板方法（template method），用于每个子类去实现任何所需的构造器逻辑（any needed constructor logic）。首先会创建类，然后组件对象各层次里面的每个类都应该调用superclass.initComponent。通过该方法，就可方便地实现（implement），或重写（Override）任意一层构造器的逻辑。 <br/><strong>4.状态感知进行初始化（如果有的话）</strong>State is initialized (if applicable)<br/>　　如果组件是状态感知的，其状态会进行刷新。 <br/><strong>5.加载好插件（如果有的话）</strong>Plugins are loaded (if applicable)<br/>　　如果该组件有指定任何插件，这时便会初始化。 <br/><strong>6.渲染好插件（如果有的话）</strong>The component is rendered (if applicable)<br/>　　如果指定了组件的<span style="color:Red">renderTo</span> 或 <span style="color:Red">applyTo</span>配置属性，那么渲染工作就会立即开始，否则会延时渲染，即等待到显式控制显示，或是其容器告知其显示的命令。<br/><br/><span style="color:Red"><strong><span style="font-size:15pt">渲染过程 Rendering</span></strong></span><br/><strong>1. 触发beforerender事件 The beforerender event is fired</strong><br/>　　这是个可取消的事件，指定的handler可阻止组件进行渲染 <br/><strong>2. 设置好容器 The container is set</strong><br/>　　如果没有指定一个容器，那么将使用位于DOM元素中组件的父节点作为容器。 <br/><strong>3. 调用onRender方法 he onRender method is called</strong><br/>　　这是子类渲染最重要的一个步骤，由于该方法是一个模板方法（template method），用于每个子类去实现任何所需的渲染逻辑（any needed render logic）。首先会创建类，然后组件对象各层次里面的每个类都应调用superclass.onRender。通过该方法，就可方便地实现（implement），或重写（Override）任意一层渲染的逻辑。 <br/><strong>4. 组件是“隐藏”状态的 The Component is &#34;unhidden&#34;</strong><br/>　　默认下，许多组件是在CSS样式类如&#34;x-hidden&#34;设置隐藏的。如果 <span style="color:Blue">autoShow</span>所配置的值为true，这时就不会有这个&#34;hide&#34;样式类作用在该组件上 <br/><strong>5. 自定义的类、样式生效了 Custom class and/or style applied</strong><br/>　　一切组件的子类都支持<span style="color:Red">cls</span>和<span style="color:Red">style</span> 两种特殊的配置属性，分别用于指定用户自定义的CSS样式类和CSS规则。 推荐指定cls的方法来制定组件及其各部分的可视化设置。由于该样式类会套用在组件makeup最外的一层元素，所以标准CSS规则会继承到组件下任何子元素的身上。 <br/><strong>6. 触发render事件 The render event is fired</strong><br/>　　这是组件通知成功渲染的一个步骤。这时，你可肯定认为组件的DOM元素已经是可用的了。如果尝试在组件之前访问组件，会报告一个不可用的错误。 <br/><strong>7. 调用了afterRender方法 The afterRender method is called</strong><br/>　　这是另外一个实现或重写特定所需的“后渲染”逻辑的模板方法。每个子类应调用superclass.afterRender. <br/><strong>8. 组件被隐藏或禁用（如果有的话） The Component is hidden and/or disabled (if applicable)</strong><br/>　　配置项hidden和disabled到这步生效 <br/><strong>9. 所有状态感知的事件初始化（如果有的话） Any state-specific events are initialized (if applicable)</strong><br/>　　状态感知的组件可由事件声明特殊加载和保存状态。如支持，加入此类的事件。 <br/><br/><span style="color:Red"><strong><span style="font-size:15pt">销毁过程 Destruction</span></strong></span><br/><strong>1. 触发beforedesroy事件 The beforedestroy event is fired</strong><br/>　　这是个可取消的事件，指定的handler可阻止组件被销毁。 <br/><strong>2. 调用了beforeDestroy方法 The beforeDestroy method is called</strong><br/>　　这是另外一个实现或重写预定销毁逻辑的模板方法。每个子类应调用superclass.beforeDestroy。 <br/><strong>3. 元素及其侦听器被移除 Element and its listeners are removed</strong><br/>　　若组件是渲染好的，所属的元素的事件侦听器会被移除和元素本身会从DOM那里移除。 <br/><strong>4. 调用了onDestroy方法 The onDestroy method is called</strong><br/>　　这是另外一个实现或重写特定所需的“后销毁”逻辑的模板方法。每个子类应调用superclass.onDestroy。注意 容器类（Container class，和一切容器的子类）提供了一个默认的onDestroy实现，自动遍历其items集合里的每一项，分别地执行子组件身上的destroy方法。 <br/><strong>5. 在组件管理器中撤销组件对象的登记 Component is unregistered from ComponentMgr</strong><br/>　　使得不能再从Ext.getCmp获取组件对象 <br/><strong>6. 触发destroy事件 The destroy event is fired</strong><br/>　　这是组件成功销毁的一个简单通知。此时组件已经DOM中已是没有的了 <br/><strong>7. 组件上的事件侦听器被移除 Event listeners on the Component are removed</strong><br/>　　组件本身可允许从所属的元素得到事件侦听器。如有的话，连同删除。<br/><br/><strong><span style="font-size:16pt">组件的X类型 <span style="color:Red">XTypes</span></span></strong><br/>　　<span style="color:Red">XTypes</span>是Ext 2.0中新的概念，被认为是<strong>Ext组件的特定类型</strong>。可用的xtype摘要可在 Component类API开始的地方找到。与一般JavaScript对象用法相似，<strong>XTypes可用于查找或比较组件对象，如<span style="color:Red">isXType</span>和<span style="color:Red">getXType</span>的方法</strong>。 你亦可以列出任意组件的xtpye层次表，用方法getXTypes。<br/><br/>　　然而，如何把Xtypes用于优化组件的创建和渲染过程才是XTypes发挥威力的地方。 <strong>通过指定一个xtype的配置对象的写法，可隐式声明的方式创建组件</strong>，<u>使得如果没有渲染的需要就只是一个对象而免去实例化的步骤</u>，这时不仅渲染的动作是延时的，而且创建实际对象的这一步也是延时的，从而节省了内存和资源。 在复杂的布局中，这种性能上的改进尤为明显。<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">//显式创建所容纳的组件<br/>var panel = new Ext.Panel({<br/>...<br/>items: [<br/>new Ext.Button({<br/>text: &#39;OK&#39;<br/>})<br/>]<br/>};<br/> <br/>//使用xtype创建<br/>var panel = new Ext.Panel({<br/>...<br/>items: [{<br/>xtype: &#39;button&#39;,<br/>text: &#39;OK&#39;<br/>}]<br/>};</div></div><br/>第一个例子中，面板初始化的同时，按钮总是会立即被创建的。如果加入较多的组件，这种方法很可能界面的渲染速度。第二例子中，按钮直到面板真正在浏览器上显示才会被创建和渲染。 <br/><br/>如果面板从未显示（例如有个tab一直是隐藏的），那么按钮就不会被创建，不会消耗任何资源了。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=282</link>
			<title><![CDATA[实现ASP创建多级文件夹的函数]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Fri,28 Nov 2008 10:17:56 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=282</guid>	
		<description><![CDATA[<span style="color:Red">FileSystemObject</span>中有个方法创建文件夹的方法Cr&#101;ateFolder，但是<strong>这个方法只能在其上一级文件夹存在的情况下创建新的文件夹</strong>，所以我就写了一个自动创建多级文件夹的函数，在生成静态页面等方面使用非常方便。函数如下： <br/>以下为引用的内容：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&#39;自动创建指定的多级文件夹 <br/>&#39;strPath为绝对路径 <br/>Function AutoCr&#101;ateFolder(strPath) &#39;As Boolean <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim astrPath, ulngPath, i, strTmpPath <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim objFSO <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If InStr(strPath, &#34;\&#34;) &lt;=0 o&#114; InStr(strPath, &#34;:&#34;) &lt;= 0 Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoCr&#101;ateFolder = False <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set objFSO = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If objFSO.FolderExists(strPath) Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoCr&#101;ateFolder = True <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;astrPath = Split(strPath, &#34;\&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ulngPath = UBound(astrPath) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTmpPath = &#34;&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To ulngPath <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTmpPath = strTmpPath &amp; astrPath(i) &amp; &#34;\&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not objFSO.FolderExists(strTmpPath) Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;创建 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objFSO.Cr&#101;ateFolder(strTmpPath) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set objFSO = Nothing <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Err = 0 Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoCr&#101;ateFolder = True <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoCr&#101;ateFolder = False <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If <br/>End Function</div></div><br/><br/><strong>&#39;调用方法:</strong> <br/>以下为引用的内容：<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">MyPath = Server.MapPath(&#34;a/b/c&#34;) <br/>If AutoCr&#101;ateFolder(MyPath) Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;创建文件夹成功&#34; <br/>Else <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;创建文件夹失败&#34; <br/>End If</div></div><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=281</link>
			<title><![CDATA[Extjs学习的初级笔记(一)]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Thu,27 Nov 2008 15:50:56 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=281</guid>	
		<description><![CDATA[<strong>应用extjs需要在页面中引入extjs的样式及extjs库文件</strong><br/>样式文件：<span style="color:Red">resources/css/ext-all.css</span><br/>extjs的js库文件主要包含两个：<span style="color:Red">adapter/ext/ext-base.js</span>及<span style="color:Red">ext-all.js</span><br/>　　其中<strong>ext-base.js表示框架基础库</strong>，<strong>ext-all.js是extjs的核心库</strong>。adapter表示适配器，也就是说可以有多种适配器，因此，可以把adapter/ext/ext-base.js换成adapter/jquery/ext-jquery-adapter.js，或adapter/prototype/ext-prototype-adapter.js等。要使用ExtJS框架的页面中一般包括下面几句：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;extjs/resources/css/ext-all.css&#34; /&gt;<br/>&lt;script type=&#34;text/javascript&#34; src=&#34;extjs/adapter/ext/ext-base.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=&#34;text/javascript&#34; src=&#34;extjs/ext-all.js&#34;&gt;&lt;/script&gt;</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=280</link>
			<title><![CDATA[通用防SQL注入函数]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Tue,11 Nov 2008 10:53:13 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=280</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>&#39;&#39;--------定义部份------------------<br/>Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr<br/>&#39;&#39;自定义需要过滤的字串,用 &#34;防&#34; 分隔<br/>Fy_In = &#34;&#39;&#39;防;防and防exec防ins&#101;rt防sel&#101;ct防del&#101;te防up&#100;ate防count防*防%防chr防mid防master防truncate防char防declare防&lt;防&gt;防=防|防-防_&#34;<br/>Fy_Inf = split(Fy_In,&#34;防&#34;)<br/><br/>&#39;过滤post请求，即要考虑request.form,它是以数组形式存在的，只需要做一下循环判断即可。<br/>If Request.Form&lt;&gt;&#34;&#34; Then<br/>&#160;&#160;&#160;&#160;For Each Fy_Post In Request.Form<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For Fy_Xh=0 To Ubound(Fy_Inf)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))&lt;&gt;0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;&lt;Script Language=JavaScript&gt;alert(&#39;网管友情提示黑客大侠↓\n\n请不要在参数中包含非法字符尝试注入攻击本站,本站做起来很不容易的.俺是菜鸟,好怕怕,放俺一马吧\n\n&#39;);&lt;/Script&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;非法操作!本站已经给大侠您做了如下记录↓&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作IP：&#34;&amp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作时间：&#34;&amp;Now&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作页面：&#34;&amp;Request.ServerVariables(&#34;URL&#34;)&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交方式：POST&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交参数：&#34;&amp;Fy_Post&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交数据：&#34;&amp;Request.Form(Fy_Post)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.End<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End If<br/><br/>&#39;过滤get请求，IIS传递给asp.dll的get请求也是以字符串的形式传递给Request.QueryString数据后，asp解析器会分析Request.QueryString的信息，然后根据&#34;&amp;&#34;，分出各个数组内的数据。get的拦截如下：<br/>If Request.QueryString&lt;&gt;&#34;&#34; Then<br/>&#160;&#160;&#160;&#160;For Each Fy_Get In Request.QueryString<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For Fy_Xh=0 To Ubound(Fy_Inf)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))&lt;&gt;0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;&lt;Script Language=JavaScript&gt;alert(&#39;网管友情提示黑客大侠↓\n\n请不要在参数中包含非法字符尝试注入攻击本站,本站做起来很不容易的.俺是菜鸟,好怕怕,放俺一马吧\n\n&#39;);&lt;/Script&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;非法操作！本站已经给大侠您做了如下记录↓&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作IP：&#34;&amp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作时间：&#34;&amp;Now&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;操作页面：&#34;&amp;Request.ServerVariables(&#34;URL&#34;)&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交方式：GET&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交参数：&#34;&amp;Fy_Get&amp;&#34;&lt;br&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.Write &#34;提交数据：&#34;&amp;Request.QueryString(Fy_Get)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.End<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End If<br/>%&gt;</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.51spread.com/blog/default.asp?id=279</link>
			<title><![CDATA[jquery和prototype冲突解决方法汇总]]></title>
			<author>lovecode@gmail.com(Charles)</author>
			<category><![CDATA[Web Develop]]></category>
			<pubDate>Sat,25 Oct 2008 11:39:08 +0800</pubDate>
			<guid>http://www.51spread.com/blog/default.asp?id=279</guid>	
		<description><![CDATA[问题背景: 想用 jQuery 做 AJAX 处理, 用基于 Prototype 的 EasyValidation 做表单验证, 但是二者不能共存, 因为都用了同一个方法名: $().<br/><br/>以下解决方法都是来源于网络，还未经亲自测试：<br/>解决一：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;script src=”prototype.js”&gt;&lt;/script&gt;<br/>&lt;script src=”jquery.js”&gt;&lt;/script&gt;<br/>&lt;script type=”text/javascript”&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">jQuery.noConflict();</span>&lt;/script&gt;</div></div><br/><span style="color:Red">注意：一定要先引入prototype.js 再引入jquery.js，先后顺序不可错。</span><br/><br/>解决二：<br/>1、将jquery.js放到prototype.js前面（这个是必须的!）。<br/>2、在jquery.js后面将$变量重命名。<br/>方法如下：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;script type=&#34;text/javascript&#34;&nbsp;&nbsp;src=&#34;jquery.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=&#34;text/javascript&#34;&gt;<br/>var jQuery=$;<br/>&lt;/script&gt;<br/><br/>&lt;script type=&#34;text/javascript&#34; type=&#34;text/javascript&#34; src=&#34;window.js&#34;&gt;&lt;/script&gt;<br/>&lt;!--上面这个window.js调用了jquery框架的方法--&gt;<br/>&lt;script type=&#34;text/javascript&#34; type=&#34;text/javascript&#34; src=&#34;prototype.js&#34;&gt;&lt;/script&gt;<br/></div></div><br/>3、将原来使用的$方法名一律替换为jQuery名，如$(&#34;obj&#34;)替换为jQuery(&#34;obj&#34;)。<br/><br/>例如下面的一段代码, 混合了 jQuery和基于Prototype的 EasyValidation:<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51spread.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;!--&nbsp;&nbsp;jquery, 注意加载顺序 --&gt;<br/>&lt;script src=&#34;js/jquery-1.2.6.pack.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=”text/javascript”&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var jQuery=$;<br/>&lt;/script&gt;<br/><br/>&lt;!-- 表单验证 --&gt;<br/>&lt;script src=&#34;easy_validation/lib/prototype.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/>&lt;script src=&#34;easy_validation/lib/effects.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/>&lt;script src=&#34;easy_validation/src/validation_cn.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/>&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;easy_validation/styles/style_min.css&#34; /&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;contents&#34;&gt;&lt;/div&gt;<br/>&nbsp;&nbsp;&lt;script&gt;<br/>&nbsp;&nbsp;jQuery(document).ready(function(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;//jQuery(&#34;#contents&#34;).load(&#34;test.jsp&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;jQuery(&#34;#contents&#34;).load(&#34;test.jsp?username=BeanSoft&#34;)<br/>&nbsp;&nbsp;});<br/>&nbsp;&nbsp;&lt;/script&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- 为form增加required-validate class,标识需要验证form --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form id=&#39;helloworld&#39; action=&#34;#&#34; class=&#39;required-validate&#39;&gt;<br/>&lt;input name=&#34;user.name&#34; class=&#34;required min-length-6 max-length-20 validate-alphanum&#34; value=&#34;beansoft&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; *密码:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&#34;user.password&#34; type=&#34;password&#34; class=&#34;required min-length-6 max-length-20&#34; value=&#34;123456&#34; &gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;*密码(重复):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&#34;password1&#34; type=&#34;password&#34; class=&#34;required equals-user.password&#34; value=&#34;123456&#34; &gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#39;submit&#39; value=&#39;Submit&#39;/&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#39;reset&#39; value=&#39;Reset&#39;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;</div></div>]]></description>
		</item>
		
</channel>
</rss>