﻿<?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-zhangsenwei</title><link>http://www.blogjava.net/zhangsenwei/</link><description>张森炜的博客</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 05:51:45 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 05:51:45 GMT</pubDate><ttl>60</ttl><item><title>SSH快速开发与整合(一)</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/31/293290.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Mon, 31 Aug 2009 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/31/293290.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/293290.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/31/293290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/293290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/293290.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 先唠叨两句：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之前一直在搞开发，一次偶然的机会一下成了讲师。在当讲师的时间里我体会到了一个讲师和一个开发人员的区别，在公司开发项目时我个人注重功能的实现，关于技术是枝零八碎，就是我们说的什么都知道，但都没有细细的研究过。就这次偶然的机会让我有机会对技术进行了一下系统整理。但是在我成为讲师的日子里发...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhangsenwei/archive/2009/08/31/293290.html'>阅读全文</a><img src ="http://www.blogjava.net/zhangsenwei/aggbug/293290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-31 13:15 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/31/293290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH快速开发与整合(一)</title><link>http://www.blogjava.net/zhangsenwei/articles/293288.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Mon, 31 Aug 2009 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/articles/293288.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/293288.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/articles/293288.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/293288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/293288.html</trackback:ping><description><![CDATA[<p>题外话：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自从由开发人员转为培训讲师后，发现了很多技术的知识点是不全面的，在开发中只要只要能够满足功能就OK了。但是发现到了讲师的职位后还需要掌握很多以前很多没有接触过的知识点。然而对于开发经验少，代码量不多，基础有限的学员来说就很头大了。所以我想将知识点进行整理，写成一系列的文章，能够让他们快速的上手和开发，这也是为什么将这一系列文章起名叫做《SSH快速开发与整合》。本系列文章的书写目的不是让大家了解多么新的技术和多么炫的页面效果，而是想为入门者提供一条更快的捷径。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于平时白天工作比较忙时间紧，一直担心怕写不完，但这次我下了很大决心将他写完。由于是第一次写这么系统的文章，里面会有很多不足，就请大家担待吧。</p>
我们废话少说开始我们的正题。<br />
开发环境：在本系列文章中，我们会用到的开发工具是 MyEclipse6.5 Blue 版本，服务为：Tomcat6.0，数据库为：Mysql6.0 。<br />
<br />
&nbsp;
<p style="text-align: center" class="MsoNormal" align="center"><strong><span style="font-family: 宋体; font-size: 16pt">第</span></strong><strong><span style="font-size: 16pt">1</span></strong><strong><span style="font-family: 宋体; font-size: 16pt">章</span></strong><strong><span style="font-family: 宋体; font-size: 16pt">基础知识回顾</span></strong></p>
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体">为了能够更清晰的了解</span>struts <span style="font-family: 宋体">框架工作原理，我们需要对</span> JSP <span style="font-family: 宋体">部分知识点进行回顾。</span></p>
<p style="text-indent: -18pt; margin-left: 18pt; tab-stops: list 18.0pt" class="MsoNormal"><strong>1.1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></strong><strong>web</strong><strong><span style="font-family: 宋体">应用程序中的</span>Model1</strong><strong><span style="font-family: 宋体">和</span>Model2</strong><strong><span style="font-family: 宋体">模型</span></strong></p>
<p><strong>&nbsp;</strong></p>
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体">在最早的</span> Java Web <span style="font-family: 宋体">应用程序中，</span>JSP<span style="font-family: 宋体">文件几乎担任了所有的工作如图</span>1-1<span style="font-family: 宋体">所示。其中包括了页面的显示、请求跳转的控制、业务的处理等等，这种方式在实际的项目开发中项目要是代码量少点也就无所谓了，如果代码量大的情况下要用这种方式开发出来的程序</span>html<span style="font-family: 宋体">代码、</span>java<span style="font-family: 宋体">代码、</span>javascript<span style="font-family: 宋体">脚本代码混在一起对于后期代码的维护是一件非常麻烦的事。所以这种方式的开发没有被业界给出什么明确的定义。<br />
<br />
<br />
<br />
</span></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-1.jpg" width="469" height="140" />&nbsp; <br clear="all" />
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体"><br />
&nbsp;&nbsp;&nbsp; 为了解决这种问题</span>Sun<span style="font-family: 宋体">公司制定了两种架构模式</span> Model 1 <span style="font-family: 宋体">和</span> Model 2<span style="font-family: 宋体">。</span></p>
<p style="text-indent: -36pt; margin-left: 36pt; tab-stops: list 36.0pt" class="MsoNormal"><strong>1.1.1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>Model 1</strong></p>
<p><strong>&nbsp;</strong></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-2.jpg" width="555" height="170" />&nbsp;&nbsp;
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体"><br />
&nbsp;&nbsp;&nbsp; 为了解决直接在</span>JSP<span style="font-family: 宋体">页面上写代码可读性差的问题，我们将原先写在</span>JSP<span style="font-family: 宋体">页面上的业务逻辑代码提出来写到</span>JavaBean<span style="font-family: 宋体">中如图</span>1-2<span style="font-family: 宋体">。此时</span>JSP<span style="font-family: 宋体">充当了视图层为客户端提供了请求和响应，再由</span>Jsp<span style="font-family: 宋体">调用</span>JavaBean<span style="font-family: 宋体">进行处理业务逻辑。这种架构方式我们往往称之为</span> Model 1<span style="font-family: 宋体">。</span></p>
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体">在</span>Model1<span style="font-family: 宋体">中，我们可以看出</span> Jsp <span style="font-family: 宋体">不但完成了对客户端的请求和应答工作还担任着调用不同业务类的请求跳转工作。但这个架构比起直接在</span>JSP<span style="font-family: 宋体">页面上写代码已经好多了，</span>Model1<span style="font-family: 宋体">中已经将业务代码从页面中的控制代码和</span>Html<span style="font-family: 宋体">代码中进行了分离。至少当程序业务代码出现问题时，我们不再会到</span>JSP<span style="font-family: 宋体">页面中去寻找修改业务逻辑代码了。</span></p>
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体">此时</span>Model1<span style="font-family: 宋体">比起直接在</span>JSP<span style="font-family: 宋体">页面上写代码已经强多了，但是对于大型项目而言还是不能够满足，毕竟</span>JSP<span style="font-family: 宋体">页面中还有控制跳转的代码存在。</span></p>
<p style="text-indent: -36pt; margin-left: 36pt; tab-stops: list 36.0pt" class="MsoNormal"><strong>1.1.2<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>Model 2</strong></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-3.jpg" width="481" height="214" />&nbsp; <br />
<br clear="all" />
<p style="text-indent: 21.75pt" class="MsoNormal"><span style="font-family: 宋体">为了解决</span>Mdel1<span style="font-family: 宋体">中控制器代码和</span>HTML<span style="font-family: 宋体">、</span>JavaScript<span style="font-family: 宋体">代码写在一起，</span>Sun<span style="font-family: 宋体">公司制定了</span>Model2<span style="font-family: 宋体">，在</span>Model2<span style="font-family: 宋体">中引入了&#8220;控制器&#8221;概念，而控制器往往由</span>Servlet<span style="font-family: 宋体">充当。此时</span>JSP<span style="font-family: 宋体">页面中只剩下了</span>HTML<span style="font-family: 宋体">代码和一些客户端</span>javascript<span style="font-family: 宋体">脚本代码，请求由控制器</span>Servlet<span style="font-family: 宋体">进行控制跳转到不同的</span>JAVABean<span style="font-family: 宋体">或者</span>JSP<span style="font-family: 宋体">页面，这样</span>Jsp<span style="font-family: 宋体">中只提供对客户的界面视图我们用英文单词</span>View<span style="font-family: 宋体">表示，而</span>Servlet<span style="font-family: 宋体">只完成请求的跳转工作我们可以用英文</span>Controller<span style="font-family: 宋体">表示，</span>JavaBean<span style="font-family: 宋体">中完成业务逻辑和数据的封装我们可以用</span>Model<span style="font-family: 宋体">表示，这样我们将</span> View - Controller - Model<span style="font-family: 宋体">三个单词的第一个字母提取出来就是我们所谓的</span> MVC <span style="font-family: 宋体">模式了。</span></p>
<p style="text-indent: -18pt; margin-left: 18pt; tab-stops: list 18.0pt" class="MsoNormal"><strong>1.2<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></strong><strong>MVC</strong><strong><span style="font-family: 宋体">的概述</span></strong></p>
<p style="text-indent: 21pt" class="MsoNormal">MVC<span style="font-family: 宋体">是</span>Model(<span style="font-family: 宋体">模型</span>) - View<span style="font-family: 宋体">视图</span>()-<span style="color: #222222">Controller(</span><span style="font-family: 宋体">控制器</span><span style="color: #222222">)</span><span style="font-family: 宋体">三个单词的缩写。</span>MVC<span style="font-family: 宋体">是</span>J2EE<span style="font-family: 宋体">中</span><span style="font-family: 宋体">的一种模式，是针对于整个应用程序结构而言的，所以</span>MVC<span style="font-family: 宋体">模式从尺度上来讲要比我们平时所说的</span>java<span style="font-family: 宋体">设计模式要大。关于</span>java<span style="font-family: 宋体">设计模式在此就不做过多的讲解了，读者可以参考阎宏博士所写的《</span>Java<span style="font-family: 宋体">与模式》</span> <span style="font-family: 宋体">。</span></p>
<p style="text-indent: 21pt" class="MsoNormal"><span style="font-family: 宋体">在</span>J2EE<span style="font-family: 宋体">中有很多技术都可以实现</span>MVC<span style="font-family: 宋体">模式比如我们马上要学习的</span>struts<span style="font-family: 宋体">框架技术就是</span>MVC<span style="font-family: 宋体">的一种实现，还有</span> JSF<span style="font-family: 宋体">、</span>WebWork<span style="font-family: 宋体">等等。</span></p>
<p style="text-indent: 21pt" class="MsoNormal"><span style="font-family: 宋体">接下来我们需要搞清楚的一个问题就是</span>J2EE<span style="font-family: 宋体">、</span>MVC<span style="font-family: 宋体">、</span>Struts<span style="font-family: 宋体">他们之间样的关系。在此我们拿</span> <span style="font-family: 宋体">宇宙</span> <span style="font-family: 宋体">、太阳系</span> <span style="font-family: 宋体">、地球来进行说明，我们都知道我们的地球是隶属于太阳系的，但是这个太阳系中不仅仅只有地球，还有火星、木星等等星球构成。例子中的太阳系就相当于</span>MVC<span style="font-family: 宋体">模式而地球相当于</span>struts<span style="font-family: 宋体">，从而我们知道</span>MVC<span style="font-family: 宋体">模式并不是只有</span>struts<span style="font-family: 宋体">能够实现，还有其他很多技术可以实现，像上面提到过的</span>JSF<span style="font-family: 宋体">、</span>WebWork<span style="font-family: 宋体">等等技术，所以我们只能够说</span>struts<span style="font-family: 宋体">是</span>MVC<span style="font-family: 宋体">模式的一种实现方式。而</span>MVC<span style="font-family: 宋体">和</span>J2EE<span style="font-family: 宋体">之间的关系就像太阳系和宇宙的关系一样，宇宙中有很多类似于太阳系的星系，所以</span>MVC<span style="font-family: 宋体">知识</span>J2EE<span style="font-family: 宋体">中的一种模式，如图</span>1-4<span style="font-family: 宋体">所示：</span></p>
<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-4.jpg" width="421" height="200" /><br />
&nbsp; <br clear="all" />
<p><strong>1.3 </strong><strong><span style="font-family: 宋体">配置一个</span> Servlet</strong></p>
<p style="text-indent: 26.25pt" class="MsoNormal"><span style="font-family: 宋体">为了让读者对程序有更深的理解，在程序实例中全部都采取手工搭建和配置。</span>(<span style="font-family: 宋体">此处作者使用的是</span>MyEclipse6.5Bule<span style="font-family: 宋体">版本</span>)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">首先我们在</span>MyEclipse<span style="font-family: 宋体">中创建一个</span>web<span style="font-family: 宋体">应用程序步骤如下：</span></p>
<p style="text-indent: 15.75pt" class="MsoNormal">(1) <span style="font-family: 宋体">选择</span> <span style="font-family: 宋体">&#8220;</span>File <span style="font-family: 宋体">菜</span><span style="font-family: 宋体">单 &#8594; New &#8594; Project &#8221;，如图1-5所示。</span></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-5.jpg" width="493" height="84" />&nbsp; <br clear="all" />
<p style="text-indent: 15.75pt" class="MsoNormal">(2)<span style="font-family: 宋体">在弹出的</span>New Project<span style="font-family: 宋体">窗口中，选择&#8220;</span>Web Project<span style="font-family: 宋体">&#8221;，然后点击&#8220;</span>Next<span style="font-family: 宋体">&#8221;按钮，如图</span>1-6<span style="font-family: 宋体">所示。</span></p>
&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-6.jpg" width="325" height="355" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-7.jpg" width="306" height="349" /><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;&nbsp;&nbsp;&nbsp; 图1-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图1-7<br clear="all" />
<p>(3)<span style="font-family: 宋体">在&#8220;</span>New Web Project<span style="font-family: 宋体">&#8221;对话框的&#8220;</span>Project Name<span style="font-family: 宋体">：&#8221;为</span>web<span style="font-family: 宋体">工程起个名字，此处我们起名为</span> frist_Servlet <span style="font-family: 宋体">。将</span>J2EE Specification Level<span style="font-family: 宋体">选中</span> Java EE5.0 <span style="font-family: 宋体">其他的不需要改变，默认就好了，单击&#8220;</span>Finish<span style="font-family: 宋体">&#8221;按钮，如图</span> 1-7 <span style="font-family: 宋体">所示。</span></p>
<p>(4)<span style="font-family: 宋体">对准创建好的</span>web<span style="font-family: 宋体">工程下的&#8220;</span>src<span style="font-family: 宋体">目录右键&#8221;</span> <span style="font-family: 宋体">&#8594; 选择&#8220;New&#8221; &#8594; 选择&#8220;Class&#8221;,如图1-8所示。</span></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-8.jpg" width="411" height="209" />&nbsp; <br clear="all" />
<p>(5)<span style="font-family: 宋体">在弹出的</span>New Java Class<span style="font-family: 宋体">对话框中的</span> <span style="font-family: 宋体">&#8220;</span>Name<span style="font-family: 宋体">：&#8221;中输入</span>HelloWord<span style="font-family: 宋体">，其他的不需改变，点击&#8220;</span>Finish<span style="font-family: 宋体">&#8221;按钮，如图</span>1-9<span style="font-family: 宋体">所示。</span></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-9.jpg" width="375" height="469" />&nbsp; <br clear="all" />
<p>(6)<span style="font-family: 宋体">修改</span>HelloWorld<span style="font-family: 宋体">类的代码，让其继承于</span>javax.servlet.http.HttpServlet<span style="font-family: 宋体">类，代码如下：</span></p>
<p><span style="z-index: 9; position: absolute; left: 0pt"></p>
</span>&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.study.struts.;<br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServlet;<br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloWorld&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;HttpServlet{<br />
</span><span style="color: #008080">6</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">7</span>&nbsp;<span style="color: #000000">}<br />
</span><span style="color: #008080">8</span>&nbsp;</div>
<br clear="all" />
<p><span style="font-family: 宋体">注意：在</span>web<span style="font-family: 宋体">应用程序中要想使一个普通的</span>Class<span style="font-family: 宋体">类变成一个</span>Serlvet <span style="font-family: 宋体">就必须让这个普通类继承与</span>javax.servlet.http.HttpServlet<span style="font-family: 宋体">类。</span></p>
<p>(7)<span style="font-family: 宋体">让</span>HelloWorld<span style="font-family: 宋体">重写父类</span>javax.servlet.http.HttpServlet<span style="font-family: 宋体">中的&#8220;</span>doGet<span style="font-family: 宋体">&#8221;</span> <span style="font-family: 宋体">方法，并输出&#8220;</span>HelloWorld<span style="font-family: 宋体">&#8221;，具体代码如下：</span></p>
<p><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletException;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServlet;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServletRequest;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServletResponse;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloWorld&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;HttpServlet&nbsp;{<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doGet(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp)<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">HelloWorld</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">}<br />
</span><span style="color: #008080">13</span>&nbsp;</div>
<p><br />
</span>&nbsp;(8)<span style="font-family: 宋体">打开&#8220;</span><strong>WebRoot</strong><strong><span style="font-family: 宋体">&#8221;目录</span> </strong><span style="font-family: 宋体">&#8594; </span><strong><span style="font-family: 宋体">&#8220;</span>WEB-INF</strong><strong><span style="font-family: 宋体">&#8221;</span></strong><span style="font-family: 宋体"> &#8594; </span><strong><span style="font-family: 宋体">&#8220;</span>web.xml</strong><span style="font-family: 宋体">&#8221;文件，如图所示。在打开的&#8220;</span>web.xml<span style="font-family: 宋体">&#8221;文件中配置</span> HelloWorld <span style="font-family: 宋体">。<br />
<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-10.jpg" width="197" height="251" /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app&nbsp;</span><span style="color: #ff0000">version</span><span style="color: #0000ff">="2.5"</span><span style="color: #ff0000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee"</span><span style="color: #ff0000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">helloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;com.study.struts.HelloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">helloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.do</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">index.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span>&nbsp;</div>
<p></span>&nbsp;</p>
<p>(9)<span style="font-family: 宋体">打开&#8220;</span>WebRoot<span style="font-family: 宋体">&#8221;目录中的&#8220;</span>index.jsp<span style="font-family: 宋体">&#8221;文件，并修改代码如下：</span></p>
<p><span style="z-index: 13; position: absolute; left: 0pt"></p>
</span>&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="background-color: #ffff00; color: #000000">&lt;%</span><span style="background-color: #f5f5f5; color: #000000">@&nbsp;page&nbsp;language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">java</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;pageEncoding</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">GB18030</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #ffff00; color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">手工配置的第一个Servlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="click.do"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">点击测试Servlet程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span>&nbsp;</div>
<br clear="all" />
<p><span style="font-family: 宋体">注意：在&#8220;</span>index.jsp<span style="font-family: 宋体">&#8221;页面第一句代码中：</span></p>
<p style="text-align: left; text-indent: 31.5pt" class="MsoNormal" align="left"><span style="font-family: 仿宋; color: #bf5f3f">&lt;%@ </span><span style="font-family: 仿宋; color: #3f7f7f">page </span><span style="font-family: 仿宋; color: #7f007f">language</span><span style="font-family: 仿宋; color: black">=</span><span style="font-family: 仿宋; color: #2a00ff">"java" </span><span style="font-family: 仿宋; color: #7f007f">pageEncoding</span><span style="font-family: 仿宋; color: black">=</span><span style="font-family: 仿宋; color: #2a00ff">"GB18030"</span><span style="font-family: 仿宋; color: #bf5f3f">%&gt;</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">有一个</span><span style="font-family: 仿宋; color: #7f007f">pageEncoding </span><span style="font-family: 宋体">属性，他表示当前</span>jsp<span style="font-family: 宋体">页面的编码格式，</span>GB18030<span style="font-family: 宋体">为编码集，</span><span style="font-family: 仿宋; color: #7f007f">pageEncoding </span><span style="font-family: 宋体">属性默认为</span>ISO-8859-1<span style="font-family: 宋体">编码集，而</span>ISO-8859-1<span style="font-family: 宋体">编码中是不支持中文字符的，换句话说也就是如果当前页面</span><span style="font-family: 仿宋; color: #7f007f">pageEncoding</span><span style="font-family: 仿宋; color: black">=</span><span style="font-family: 仿宋; color: #2a00ff">"ISO-8859-1" </span><span style="font-family: 宋体">那么当前页面中是不允许出现中文字符的，所以此处我们将</span><span style="font-family: 仿宋; color: #7f007f">pageEncoding</span><span style="font-family: 宋体">的值改为&#8220;</span>GB18030<span style="font-family: 宋体">&#8221;</span><span style="font-family: 宋体">。在</span>Java<span style="font-family: 宋体">编程中常见的编码集有以下几种：</span></p>
<table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 111.05pt; border-top: medium none; border-right: medium none" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p><span style="font-family: 宋体">编码集名称</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">是否支持中文</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p>ISO-8859-1</p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">不支持</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p>UTF-8</p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">支持</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p>GB2312</p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">支持</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p>GBK</p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">支持</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 104.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="139">
            <p>GB18030</p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="120">
            <p><span style="font-family: 宋体">支持</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>(10)<span style="font-family: 宋体">部署应用程序，如图</span>1-11<span style="font-family: 宋体">所示。</span></p>
&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-11.jpg" width="315" height="67" /><br clear="all" />
(11)<span style="font-family: 宋体">运行</span>web<span style="font-family: 宋体">程序，如图</span>1-12<span style="font-family: 宋体">所示，在</span> IE <span style="font-family: 宋体">浏览器地址栏输入</span>http://localhost:8080/frist_Servlet <span style="font-family: 宋体">如图</span>1-13<span style="font-family: 宋体">所示。</span>&nbsp;<br />
&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-12.jpg" width="277" height="141" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-13.jpg" width="373" height="228" /><br clear="all" />
<p style="text-align: left; text-indent: 21pt" class="MsoNormal" align="left"><span style="font-family: 宋体">由于我们在</span>9<span style="font-family: 宋体">步中写过</span> &nbsp;<span style="font-family: 仿宋; color: teal">&lt;</span><span style="font-family: 仿宋; color: #3f7f7f">a </span><span style="font-family: 仿宋; color: #7f007f">href</span><span style="font-family: 仿宋; color: black">=</span><span style="font-family: 仿宋; color: #2a00ff">"click.do"</span><span style="font-family: 仿宋; color: teal">&gt;</span><span style="font-family: 仿宋; color: black">点击测试Servlet程序</span><span style="font-family: 仿宋; color: teal">&lt;/</span><span style="font-family: 仿宋; color: #3f7f7f">a</span><span style="font-family: 仿宋; color: teal">&gt; &nbsp;</span><span style="font-family: 宋体">代码当我们点击超链接&#8220;点解测试</span>Servlet<span style="font-family: 宋体">程序&#8221;时，浏览器将会发出一个</span> click.do <span style="font-family: 宋体">的请求，此时</span>web<span style="font-family: 宋体">应用程序会接收到浏览器发出的</span>click.do<span style="font-family: 宋体">请求，因为我们在第</span>8<span style="font-family: 宋体">步中为</span>web.xml<span style="font-family: 宋体">配置过如下代码：</span></p>
<p style="text-indent: 21pt" class="MsoNormal"><span style="z-index: 17; position: absolute; left: 0pt"></p>
</span>&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">helloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.do</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">6</span>&nbsp;</div>
<br clear="all" />
<p><span style="font-family: 宋体">其中</span> &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; <span style="font-family: 宋体">表示只要</span>jsp<span style="font-family: 宋体">页面发出的所有以</span> .do <span style="font-family: 宋体">结尾的请求都会被拦截。拦截后的请求会自动找到</span> &lt;servlet-name&gt;helloWorld&lt;/servlet-name&gt; <span style="font-family: 宋体">并取得到值</span> <span style="font-family: 宋体">&#8220;</span>helloWorld<span style="font-family: 宋体">&#8221;</span> <span style="font-family: 宋体">，并会带着&#8220;</span>helloWorld<span style="font-family: 宋体">&#8221;值到下面这段代码去寻找</span>&lt;servlet&gt;<span style="font-family: 宋体">的子标签</span>&lt;servlet-name&gt;<span style="font-family: 宋体">的值和&#8220;</span>helloWorld<span style="font-family: 宋体">&#8221;相等的一项。</span></p>
<p><span style="z-index: 18; position: absolute; left: 0pt"></p>
</span>&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">helloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;com.study.struts.HelloWorld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;</div>
<br clear="all" />
<p><span style="font-family: 宋体">当请求被寻找到后程序会自动将请求跳转到所对应的</span>&lt;servlet-class&gt;<span style="font-family: 宋体">标签所配置的类中执行</span>doGet <span style="font-family: 宋体">方法，调用流程如图</span>1-14<span style="font-family: 宋体">所示。</span></p>
&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-14.jpg" width="517" height="395" /><br clear="all" />
<p><span style="font-family: 宋体">程序最后会在</span>Eclipse<span style="font-family: 宋体">控制台上打印&#8220;&#8221;，运行结果如图</span>1-15<span style="font-family: 宋体">所示：</span></p>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/ssh/1-15.jpg" width="555" height="266" />&nbsp; 
 <img src ="http://www.blogjava.net/zhangsenwei/aggbug/293288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-31 11:57 <a href="http://www.blogjava.net/zhangsenwei/articles/293288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Flex第一步》第二章PDF下载</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293072.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sat, 29 Aug 2009 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293072.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/293072.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293072.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/293072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/293072.html</trackback:ping><description><![CDATA[最近在网上收集Flex的学习资料，感觉《Flex第一步》对于入门者来说这本书挺好的，但只有部分章节在网上有电子版了，先将搜到的共享一下<br />
<a href="/Files/zhangsenwei/Char2.rar">《Flex第一步》第二章下载</a>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/293072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-29 10:30 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Flex第一步》第三章3.2 使用组件</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293068.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Sat, 29 Aug 2009 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293068.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/293068.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/293068.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/293068.html</trackback:ping><description><![CDATA[<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.2&nbsp;<font face="宋体">使用组件</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在&nbsp;<font face="Times New Roman">MXML&nbsp;</font><font face="宋体">中，除了&nbsp;</font><font face="Times New Roman">Application</font><font face="宋体">标签外，还提供了大量的标签供我们使用。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">例如上面代码中出现的<font face="Times New Roman">Button</font><font face="宋体">和</font><font face="Times New Roman">Label</font><font face="宋体">标签，处理界面结构的</font><font face="Times New Roman">Canvas</font><font face="宋体">、</font><font face="Times New Roman">Box</font><font face="宋体">标签，网页中常见的下拉框、多选框、单选框、复选框，用来显示数据的</font><font face="Times New Roman">DataGrid</font><font face="宋体">、</font><font face="Times New Roman">Tree</font><font face="宋体">等等。每个标签都对应一个类文件。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.2.1&nbsp;<font face="宋体">插入组件</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在<font face="Times New Roman">MXML</font><font face="宋体">中组件使用起来非常简单，比如插入一个按钮，编写代码：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&lt;mx:Button&gt;&lt;/mx:Button&gt;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">这一对闭合的标签将在界面上绘制出一个<font face="Times New Roman">Button</font><font face="宋体">组件。在</font><font face="Times New Roman">XML</font><font face="宋体">中，所有标签必须闭合。和正常标签相比，闭合标签只是在前面添加了一个&#8220;</font><font face="Times New Roman">/</font><font face="宋体">&#8221;。也是用另一种形式：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&lt;mx:Button&nbsp;/&gt;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&#8220;<font face="Times New Roman">/</font><font face="宋体">&#8221;符号是闭合标签的简写形式，通常用于单行的节点，描述一个单独的元素。如果标签包含子节点，则不能采用简写。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">MXML<font face="宋体">中，组件的属性（如长、宽、位置等）是作为节点的属性出现的，比如：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&lt;mx:Button&nbsp;width="200"&nbsp;hieight="200"&gt;&lt;/mx:Button&gt;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">组件按照功能大致可分为三类：</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-align: justify; margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">布局类，包括所有的容器类型组件，比如&nbsp;<font face="Times New Roman">HBox</font><font face="宋体">、</font><font face="Times New Roman">Panel</font><font face="宋体">等。</font><font face="Times New Roman">Spacer</font><font face="宋体">、</font><font face="Times New Roman">HRule&nbsp;</font><font face="宋体">和&nbsp;</font><font face="Times New Roman">VRule</font><font face="宋体">不是容器类型，但主要用于布局，因此也归于此类。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-align: justify; margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">导航类，包括菜单条、按钮条等各种导航功能的组件。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-align: justify; margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">交互类，包括内容展示、数据交互相关组件，如按钮、下拉框、图片、视频等等。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-align: justify; margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">Flex&nbsp;Builder<font face="宋体">的组件面板中列出了所有的可视化组件。在设计模式试图下，可以直接从组件面板将组件拖入到编辑区，同时自动生成程序代码。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-align: justify; margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">如果要使用非可视化组件，则需要输入代码。在代码试图中输入<font face="Times New Roman">&lt;mx:&nbsp;</font><font face="宋体">这时候跟进的代码提示窗口将列出</font><font face="Times New Roman">mx&nbsp;</font><font face="宋体">空间下所有的对象，如图&nbsp;</font><font face="Times New Roman">3.1&nbsp;</font><font face="宋体">所示。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.1.jpg" width="402" height="288" /><br />
</p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.2.2<font face="宋体">自定义</font><font face="Times New Roman">MXML</font><font face="宋体">组件</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在实际开发中，尤其是一个大型应用中，我们不会把所有的代码都塞进一个文件中。可以想象，修改一个几千行的文件是件痛苦的事。因此，对程序进行功能分割是非常必要的。这带来的好处很多，明显的一点是让开发者能够分工合作，提高程序的重用性，降低了维护的难度。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">基于组建的开发模式是<font face="Times New Roman">Flex</font><font face="宋体">的一个特色。一个</font><font face="Times New Roman">Flex</font><font face="宋体">程序是由若干个组件构成的。程序中所有的</font><font face="Times New Roman">MXML</font><font face="宋体">文件和</font><font face="Times New Roman">ActionScript</font><font face="宋体">类文件，都被当作用户自定义的组件。用户自定义的组件和</font><font face="Times New Roman">Flex</font><font face="宋体">本身的组件在用法上完全一样，它们的区别在于：</font><font face="Times New Roman">Flex</font><font face="宋体">组件经过封装，可以被任意程序使用，而用户组件在特定的程序中才可以使用。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">一般我们将程序中功能能够独立或者需要返复使用的部分定义成一个用户组件。编写程序时，应当尽量减少组件与组件之间的直接联系，降低块与块之间的依赖性。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在程序<font face="Times New Roman">Example_1</font><font face="宋体">中，我们来新建一个</font><font face="Times New Roman">MXML</font><font face="宋体">组件。在导航区，在空白区域单击鼠标右键，在弹出的菜单中选择&nbsp;</font><font face="Times New Roman">New&nbsp;----&gt;&nbsp;MXML&nbsp;Component</font><font face="宋体">，见图</font><font face="Times New Roman">3.2</font><font face="宋体">。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><!--endfragment--><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.2.jpg" width="530" height="288" /></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">然后会弹出如图&nbsp;<font face="Times New Roman">3.3&nbsp;</font><font face="宋体">所示的对话框。</font></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><!--endfragment--><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.3.jpg" width="526" height="566" /><br />
</p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">这里要给出被创建组件的文件名，并选择是扩展来自哪一种组件，包括所有可视化组件和用户已经自定义的组件，也就是说可以在已经扩展的基础上就继续扩展。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">选择<font face="Times New Roman">Image</font><font face="宋体">对象，单击</font><font face="Times New Roman">Finish</font><font face="宋体">按钮，一个新的</font><font face="Times New Roman">MXML</font><font face="宋体">文件被创建了，切换到设计视图，点击</font><font face="Times New Roman">Image</font><font face="宋体">组件，在属性面板会看到他的常见属性，见图</font><font face="Times New Roman">3.4</font><font face="宋体">。其中</font><font face="Times New Roman">Source</font><font face="宋体">属性即图片的路径。选择好图片后，这个组建就完成了，见图</font><font face="Times New Roman">3.5</font><font face="宋体">。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><!--endfragment--><br />
<!--endfragment--><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.4.jpg" width="360" height="231" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.5.jpg" width="171" height="165" /><br />
<!--endfragment--></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">myImage.mxml<font face="宋体">的文件内容如下：</font></span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Image&nbsp;&nbsp;</span><span style="color: #ff0000">xmlns:mx</span><span style="color: #0000ff">="http://www.adobe.com/2006/mxml"</span><span style="color: #ff0000">&nbsp;source</span><span style="color: #0000ff">="pic/animal.png"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">mx:Image</span><span style="color: #0000ff">&gt;</span></div>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp; 再次切换到设计模式视图。这时，在组件面板上，<font face="Times New Roman">Custom</font><font face="宋体">分类中出现了新添加的组件名。想使用</font><font face="Times New Roman">Flex</font><font face="宋体">自带的组件一样，将</font><font face="Times New Roman">myImage</font><font face="宋体">组件从组件面板拖放到主程序中，图片显示正常。切换到代码模式视图，</font><font face="Times New Roman">Example_1.mxml</font><font face="宋体">文件的内容变化了：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Application&nbsp;</span><span style="color: #ff0000">xmlns:mx</span><span style="color: #0000ff">="http://www.adobe.com/2006/mxml"</span><span style="color: #ff0000">&nbsp;layout</span><span style="color: #0000ff">="absolute"</span><span style="color: #ff0000">&nbsp;xmlns:ns1</span><span style="color: #0000ff">="*"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ns1:myImage&nbsp;</span><span style="color: #ff0000">x</span><span style="color: #0000ff">="30"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="30"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">mx:Application</span><span style="color: #0000ff">&gt;</span></div>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"></font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp; 请注意，在<font face="Times New Roman">Application</font><font face="宋体">标签中，多了一个属性：</font><font face="Times New Roman">xmlns:nsl="*"</font><font face="宋体">，这便是本章</font><font face="Times New Roman">3.1.2</font><font face="宋体">节中讲到的自定义命名空间。这里边机器自动添加了名为&#8220;</font><font face="Times New Roman">nsl</font><font face="宋体">&#8221;的命名空间，将程序目录下所有的</font><font face="Times New Roman">MXML</font><font face="宋体">组件都纳入其中。因此，插入的</font><font face="Times New Roman">myImage</font><font face="宋体">组件的代码相应变为：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&lt;nsl:myImage&nbsp;x="30"&nbsp;y="30"&nbsp;/&gt;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp; 在实际开发中，为了更好地规划程序的结构，我们一般根据功能来划分命名空间。新建文件夹&#8220;<font face="Times New Roman">view</font><font face="宋体">&#8221;，将</font><font face="Times New Roman">myImage</font><font face="宋体">放在其中。&#8220;</font><font face="Times New Roman">view</font><font face="宋体">&#8221;有视图、视界的意思，我们把所有和界面相关的组件都放在这里面，这样看文件夹的名字就知道里面的大致内容了。修改后，</font><font face="Times New Roman">Exaple_1.mxml</font><font face="宋体">文件的代码如下：</font></span><!--endfragment--></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Application&nbsp;</span><span style="color: #ff0000">xmlns:mx</span><span style="color: #0000ff">="http://www.adobe.com/2006/mxml"</span><span style="color: #ff0000">&nbsp;layout</span><span style="color: #0000ff">="absolute"</span><span style="color: #ff0000">&nbsp;xmlns:view</span><span style="color: #0000ff">="wiew.*"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">view:myImage&nbsp;</span><span style="color: #ff0000">x</span><span style="color: #0000ff">="30"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="30"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">mx:Application</span><span style="color: #0000ff">&gt;</span></div>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">运行程序，效果如图<font face="Times New Roman">3.6</font><font face="宋体">所示：</font></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><!--endfragment--><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangsenwei/Flex/3.6.jpg" width="275" height="233" /><br />
<br />
<span style="color: red"><strong>说明：由于在网上相关资源太少所以本文是按照《Flex第一步》编写，由于时间比较短所以第三章内容没有全部出来同时编写过程中有错别字，请大家担待。^_^</strong></span><br />
<br />
</p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><!--endfragment--><!--endfragment--></p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/293068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-29 10:19 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/29/293068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Flex第一步》第三章3.1MXML语法</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/28/292998.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 28 Aug 2009 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/28/292998.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/292998.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/28/292998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/292998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/292998.html</trackback:ping><description><![CDATA[<strong><font style="color: #000000" color="#ff0000" face="宋体"><span style="font-family: 宋体">
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.1&nbsp;&nbsp;MXML<font face="宋体">语法</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">通常情况下，<font face="Times New Roman">Flex</font><font face="宋体">程序由以下三种文件组成：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">以&nbsp;<font face="Times New Roman">mxml</font><font face="宋体">为后缀的程序文件</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">以&nbsp;<font face="Times New Roman">as&nbsp;</font><font face="宋体">为后缀的&nbsp;</font><font face="Times New Roman">ActionScript&nbsp;</font><font face="宋体">文件</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -21pt; margin-bottom: 0pt; margin-left: 21pt" class="p0"><span style="font-family: 'Wingdings'; font-size: 10.5pt; mso-spacerun: 'yes'">l&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">以<font face="Times New Roman">css&nbsp;</font><font face="宋体">为后缀的样式表文件</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">MXML<font face="宋体">文件就好比大脑，</font><font face="Times New Roman">as</font><font face="宋体">文件和</font><font face="Times New Roman">css</font><font face="宋体">文件是他的手和脚，主程序</font><font face="Times New Roman">MXML</font><font face="宋体">文件将项目中的所有文件组合在一起，形成一个有机的整体。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">本章简要说明<font face="Times New Roman">MXML</font><font face="宋体">的语法，并结合实力分析</font><font face="Times New Roman">MXML</font><font face="宋体">文件的内容结构。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在上一章的实例中，创建了一个简单的<font face="Times New Roman">Flex</font><font face="宋体">程序，主程序文件是一个&#8220;</font><font face="Times New Roman">mxml</font><font face="宋体">&#8221;为后缀名的文件，这个文件所采用的便是我们这里要讲的</font><font face="Times New Roman">MXML</font><font face="宋体">语言。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">MXML<font face="宋体">语言，是专门用于</font><font face="Times New Roman">Flex</font><font face="宋体">程序中，描述界面表现的一种</font><font face="Times New Roman">XML</font><font face="宋体">标记语言。我们可以用它来管理程序的整体布局，控制组建的央视和外观，也可以构建非可视化的对象，比如</font><font face="Times New Roman">XML</font><font face="宋体">数据、与服务器端通信的</font><font face="Times New Roman">WebService</font><font face="宋体">、组件的数据源等等。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.1.1&nbsp;<font face="宋体">命名规范</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">类似网页中实用的<font face="Times New Roman">HTML</font><font face="宋体">语言，</font><font face="Times New Roman">MXML</font><font face="宋体">提供了一系列的标签供用户使用，到哪</font><font face="Times New Roman">MXML</font><font face="宋体">的语法更严格的多，他提供的内置标签也更丰富。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">MXML<font face="宋体">区分大小写，且文件名和变量标识名都区分大小写。字母大小写错误是编程中常见的错误，隐蔽性较高，有时很难排错。在编写代码时，应采用合理的命名规范，避免出现这类错误。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在<font face="Times New Roman">Flex</font><font face="宋体">程序中，每个</font><font face="Times New Roman">MXML</font><font face="宋体">文件必须以小写的&#8220;</font><font face="Times New Roman">mxml</font><font face="宋体">&#8221;作为后缀，文件名要遵循</font><font face="Times New Roman">ActionScript</font><font face="宋体">中变量的命名规则。因为在程序中，所有的</font><font face="Times New Roman">MXML</font><font face="宋体">文件名可以直接被</font><font face="Times New Roman">ActionScript</font><font face="宋体">当作一种用户定的数据类型来使用。因此，</font><font face="Times New Roman">MXML</font><font face="宋体">文件名不能和</font><font face="Times New Roman">ActionScript</font><font face="宋体">类文件同名，否则就会造成类型冲突。在</font><font face="Times New Roman">ActionScript</font><font face="宋体">中，变量名必须以字母或下划线开始，且只能包含字母、数字和下划线。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">需要注意的是，<font face="Times New Roman">MXML</font><font face="宋体">文件不能名为&#8220;</font><font face="Times New Roman">application</font><font face="宋体">&#8221;&nbsp;</font><font face="Times New Roman">,</font><font face="宋体">&#8220;</font><font face="Times New Roman">application</font><font face="宋体">&#8221;是住程序文件所采用的默认标记，不可以在被使用。也不能和程序中任意组件的</font><font face="Times New Roman">id</font><font face="宋体">值同名。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">例如，下面是<font face="Times New Roman">HelloWorld.mxml</font><font face="宋体">文件的源代码：</font></span><!--endfragment--></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Application&nbsp;</span><span style="color: #ff0000">xmlns:mx</span><span style="color: #0000ff">="http://www.adobe.com/2006/mxml"</span><span style="color: #ff0000">&nbsp;layout</span><span style="color: #0000ff">="absolute"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Button&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="btn"</span><span style="color: #ff0000">&nbsp;x</span><span style="color: #0000ff">="51"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="107"</span><span style="color: #ff0000">&nbsp;label</span><span style="color: #0000ff">="Click&nbsp;me"</span><span style="color: #ff0000">&nbsp;click</span><span style="color: #0000ff">="trace('这是点击后的文字')"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Label&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="tip_txt"</span><span style="color: #ff0000">&nbsp;x</span><span style="color: #0000ff">="182"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="109"</span><span style="color: #ff0000">&nbsp;text</span><span style="color: #0000ff">="这是点击前的文字"</span><span style="color: #ff0000">&nbsp;fontSize</span><span style="color: #0000ff">="12"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="136"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">mx:Application</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 21pt" class="MsoNormal"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">尝试作如下修改：</span><!--endfragment--></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Label&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="HelloWorld"</span><span style="color: #ff0000">&nbsp;x</span><span style="color: #0000ff">="182"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="109"</span><span style="color: #ff0000">&nbsp;text</span><span style="color: #0000ff">="这是点击前的文字"</span><span style="color: #ff0000">&nbsp;fontSize</span><span style="color: #0000ff">="12"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="136"</span><span style="color: #0000ff">/&gt;</span></div>
<p style="text-indent: 21pt" class="MsoNormal">&nbsp;</p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">再次编译，将无法通过编译，得到如下错误信息：<font face="Times New Roman">identifier&nbsp;</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">and</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;class&nbsp;may&nbsp;not&nbsp;have&nbsp;the&nbsp;same&nbsp;name<font face="宋体">，意思是说组件的唯一标识名&#8220;</font><font face="Times New Roman">id</font><font face="宋体">&#8221;不可以和对象重名。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">还有一点说明：程序不可以使用&#8220;<font face="Times New Roman">mx</font><font face="宋体">&#8221;作为目录名。&#8220;</font><font face="Times New Roman">mx</font><font face="宋体">&#8221;是</font><font face="Times New Roman">Flex&nbsp;Framework</font><font face="宋体">的官方组件库的命名空间，受到</font><font face="Times New Roman">Flex</font><font face="宋体">编译器的保护。假如在程序目录中创建了名为&#8220;</font><font face="Times New Roman">mx</font><font face="宋体">&#8221;的目录，这个目录中存放的</font><font face="Times New Roman">MXML</font><font face="宋体">文件和</font><font face="Times New Roman">ActionScript</font><font face="宋体">类文件都将无法使用，会被编译器忽略。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">为了避免文件名冲突，同时也为了增强程序的可读性，文件和变量一般采用有意义的单词、名词简写或字符组合来命名。下面介绍一些习惯用法：</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -18pt; margin-bottom: 0pt; margin-left: 18pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">用类型的简写作后缀，比如：<font face="Times New Roman">LoginPanel</font><font face="宋体">表示登陆面板；</font><font face="Times New Roman">SendBtn</font><font face="宋体">表示发送按钮；</font><font face="Times New Roman">UserTxt</font><font face="宋体">表示文本组件。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -18pt; margin-bottom: 0pt; margin-left: 18pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">使用下划线组合单词，比如：<font face="Times New Roman">User_Name</font><font face="宋体">、</font><font face="Times New Roman">User_Email</font><font face="宋体">表示用户的信息；</font><font face="Times New Roman">Move_Speed</font><font face="宋体">表示速度。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: -18pt; margin-bottom: 0pt; margin-left: 18pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">常量全部使用大写，比如：<font face="Times New Roman">PI</font><font face="宋体">表示圆周率；</font><font face="Times New Roman">CLICK_EVENT</font><font face="宋体">表示点击事件名。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">不管时使用哪种方式，目的都是为了提高程序的代码质量，这对开发和日后的维护都很有帮助。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="text-indent: 21pt" class="MsoNormal"><!--endfragment--></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">3.1.2&nbsp;MXML<font face="宋体">文件结构</font></span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">一个<font face="Times New Roman">MXML</font><font face="宋体">文件由哪些元素构成？我们已经知道</font><font face="Times New Roman">MXML</font><font face="宋体">文件其实是一个标准的</font><font face="Times New Roman">mxl</font><font face="宋体">文件，因此可以参考</font><font face="Times New Roman">XML</font><font face="宋体">语法来分析</font><font face="Times New Roman">MXML</font><font face="宋体">文件的内容。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">这里仍然以上一章实例的代码为例：</span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Application&nbsp;</span><span style="color: #ff0000">xmlns:mx</span><span style="color: #0000ff">="http://www.adobe.com/2006/mxml"</span><span style="color: #ff0000">&nbsp;layout</span><span style="color: #0000ff">="absolute"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Button&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="btn"</span><span style="color: #ff0000">&nbsp;x</span><span style="color: #0000ff">="51"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="107"</span><span style="color: #ff0000">&nbsp;label</span><span style="color: #0000ff">="Click&nbsp;me"</span><span style="color: #ff0000">&nbsp;click</span><span style="color: #0000ff">="trace('这是点击后的文字')"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mx:Label&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="tip_txt"</span><span style="color: #ff0000">&nbsp;x</span><span style="color: #0000ff">="182"</span><span style="color: #ff0000">&nbsp;y</span><span style="color: #0000ff">="109"</span><span style="color: #ff0000">&nbsp;text</span><span style="color: #0000ff">="这是点击前的文字"</span><span style="color: #ff0000">&nbsp;fontSize</span><span style="color: #0000ff">="12"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="136"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">mx:Application</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 21pt" class="MsoNormal"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在<font face="Times New Roman">MXL</font><font face="宋体">文件中，需要在第一行声明</font><font face="Times New Roman">XML</font><font face="宋体">文件采用的语法版本号和文件采用的编码格式。从上面的代码中可以看到这两个属性：</font><font face="Times New Roman">version</font><font face="宋体">和</font><font face="Times New Roman">encoding</font><font face="宋体">，其中</font><font face="Times New Roman">encoding</font><font face="宋体">编码格式这个属性是可选的。选定的编码格式必须符合文件采用的编码格式，默认为</font><font face="Times New Roman">utf-8</font><font face="宋体">格式。在中文操作系统中，一般都使用</font><font face="Times New Roman">utf-8</font><font face="宋体">这个编码格式，他兼容采用双字节编码的语言</font><font face="Times New Roman">(</font><font face="宋体">包括中文、韩文、日文等</font><font face="Times New Roman">)</font><font face="宋体">和其他常见的西方语言，而且跨平台，是使用最广发的编码格式。另外也可以使用简体中文专用编码</font><font face="Times New Roman">gb2312.</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">mx:Application<font face="宋体">标签是一个特殊的标签。在每个</font><font face="Times New Roman">Flex</font><font face="宋体">项目中，可能有多个</font><font face="Times New Roman">MXML</font><font face="宋体">文件，但作为程序入口的运行文件只有一个，主文件的标示是根节点为</font><font face="Times New Roman">mx</font><font face="宋体">：</font><font face="Times New Roman">Application</font><font face="宋体">，一个程序中只能出现一个</font><font face="Times New Roman">mx</font><font face="宋体">：</font><font face="Times New Roman">Application</font><font face="宋体">节点。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在根节点中，还看到了一个属性：<font face="Times New Roman">xmlns:mx=http://www.adobe.com/2006/mxml</font><font face="宋体">，表示将</font><font face="Times New Roman">mx</font><font face="宋体">定义为</font><font face="Times New Roman">MXL</font><font face="宋体">的命名空间。</font><font face="Times New Roman">xmlns</font><font face="宋体">标签专门用来定义</font><font face="Times New Roman">XML</font><font face="宋体">的命名空间，</font><font face="Times New Roman">XML</font><font face="宋体">命名空间可以用来定义一套独立的</font><font face="Times New Roman">XML</font><font face="宋体">标签，并且为这些标签制定特殊的解析方式。比如</font><font face="Times New Roman">XML</font><font face="宋体">中默认的标签格式为：</font><font face="Times New Roman">&lt;Button&gt;node&lt;/Button&gt;</font><font face="宋体">，这里的</font><font face="Times New Roman">Button</font><font face="宋体">节点被作为一个普通的文本节点，没有什么特殊的意义。定义命名空间后，在节点上就爱上空间前缀：</font><font face="Times New Roman">&lt;mx:Button&gt;&lt;/mx:Button&gt;</font><font face="宋体">，这时候</font><font face="Times New Roman">mx:Button&nbsp;</font><font face="宋体">就代表</font><font face="Times New Roman">mx</font><font face="宋体">空间下的</font><font face="Times New Roman">Button</font><font face="宋体">对象。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">mx<font face="宋体">命名空间对应的路径是&#8220;</font><font face="Times New Roman">http://www.adobe.com/2006/mxml</font><font face="宋体">&#8221;</font><font face="Times New Roman">,Flex</font><font face="宋体">的配置文件中将这个路径定义为一个全局资源标识符，并对应了一个</font><font face="Times New Roman">MXL</font><font face="宋体">文件。在这个文件中，列出了</font><font face="Times New Roman">mx</font><font face="宋体">命令空间下的所有标签。在</font><font face="Times New Roman">Flex&nbsp;Builder2</font><font face="宋体">的安装路径下，进入</font><font face="Times New Roman">Flex&nbsp;SDK2\frameworks</font><font face="宋体">目录中，找到</font><font face="Times New Roman">flex-config.xml&nbsp;</font><font face="宋体">文件并使用记事本或其他编辑工具打开，找到下面的内容：</font></span><!--endfragment--></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">namespaces</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">—Specify&nbsp;a&nbsp;URI&nbsp;to&nbsp;associate&nbsp;with&nbsp;a&nbsp;manifest&nbsp;of&nbsp;components&nbsp;for&nbsp;use&nbsp;as&nbsp;MXML--</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">—elements.<br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp;&lt;namespace</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">http://www.adobe.com/2006/mxml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">mxml-manifest.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">namespace</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">8</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">namespaces</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 21pt" class="MsoNormal"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">从上面的配置中发现，<font face="Times New Roman">http://www.adobe.com/2006/mxml </font><font face="宋体">这个</font><font face="Times New Roman">URI</font><font face="宋体">和</font><font face="Times New Roman">mxml-manifest.xml</font><font face="宋体">文件对应。下面打开同目录下的</font><font face="Times New Roman">mxml-manifest.xml&nbsp;</font><font face="宋体">文件，里面列出了</font><font face="Times New Roman">MXML</font><font face="宋体">中的所有标签和与标签相关的类文件路径。</font></span><!--endfragment--></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">componentPackage</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="Accordion"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.containers.Accordion"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="AddChildAction"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.effects.AddChildAction"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="AnimateProperty"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.effects.AnimateProperty"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="Application"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.core.Application"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="ApplicationControlBar"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.containers.ApplicationControlBar"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="ArrayCollection"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.collections.ArrayCollection"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="Blur"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.effects.Blur"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />..<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />.<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="SecureHTTPChannel"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.messaging.channels.SecureHTTPChannel"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">component&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="SecureRTMPChannel"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="mx.messaging.channels.SecureRTMPChannel"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">componentPackage</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 21pt" class="MsoNormal">&nbsp;</p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在这份列表中，节点的<font face="Times New Roman">id</font><font face="宋体">代表标签名，</font><font face="Times New Roman">class</font><font face="宋体">表示类文件的路径。比如</font><font face="Times New Roman">mx:Application</font><font face="宋体">标签，也就是对应了</font><font face="Times New Roman">mx.core.Application</font><font face="宋体">类。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在开发中，当程序中有很多的<font face="Times New Roman">MXML</font><font face="宋体">文件和</font><font face="Times New Roman">AS</font><font face="宋体">文件时，为了方便调用，我们可以将功能类似的文件放在一个文件夹中，定义一个命名空间，这样会节省很多时间。在自定义命名空间时，为了方便，一般直接指定命名空间包括的标签路径。比如：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">xmlns<font face="宋体">：</font><font face="Times New Roman">myComp="components.*"</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">因为使用了通配符&#8220;<font face="Times New Roman">*</font><font face="宋体">&#8221;，</font><font face="Times New Roman">components</font><font face="宋体">目录下的所有</font><font face="Times New Roman">MXML</font><font face="宋体">文件和</font><font face="Times New Roman">ActionScript</font><font face="宋体">类文件</font><font face="Times New Roman">(</font><font face="宋体">不包括目录和目录中的文件</font><font face="Times New Roman">)</font><font face="宋体">都被包括在</font><font face="Times New Roman">myComp</font><font face="宋体">命名空间下。假如</font><font face="Times New Roman">components</font><font face="宋体">中有一个</font><font face="Times New Roman">LoginPanelmxml</font><font face="宋体">文件，则在程序中调用者个文件时，代码如下：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">&lt;myComp<font face="宋体">：</font><font face="Times New Roman">LoginPanel&gt;&lt;/myComp</font><font face="宋体">：</font><font face="Times New Roman">LoginPanel&gt;</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">myComp<font face="宋体">下的标签被自动指向</font><font face="Times New Roman">components</font><font face="宋体">中的文件。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">当标签数量较多且分布在不同文件夹时，可以模仿<font face="Times New Roman">Flex</font><font face="宋体">配置文件的做法，使用</font><font face="Times New Roman">XML</font><font face="宋体">文件来描述标签的路径。在后面的内容中，我们会经常看到命名空间的使用。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">Application<font face="宋体">标签中还有一个属性</font><font face="Times New Roman">layout</font><font face="宋体">，这个属性定义了</font><font face="Times New Roman">Application</font><font face="宋体">节点下元素的布局方式。由于</font><font face="Times New Roman">Application</font><font face="宋体">是根节点，因此他的布局方式决定了程序的总体布局方式。&#8220;</font><font face="Times New Roman">absolute</font><font face="宋体">&#8221;表示决定定位，所有子元素将按照各自的</font><font face="Times New Roman">x</font><font face="宋体">、</font><font face="Times New Roman">y</font><font face="宋体">坐标来定位。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">Application<font face="宋体">节点中有两个子节点，分别是</font><font face="Times New Roman">mx:Button</font><font face="宋体">和</font><font face="Times New Roman">mx:Label</font><font face="宋体">节点，代表了两个组件，节点中的属性定义了组件初始化后的一些状态，比如坐标、标示名、文字等等。</font></span><br />
<br />
</span></font></strong><span style="font-family: 宋体"><br />
<span style="color: red"><strong>说明：由于在网上相关资源太少所以本文是按照《Flex第一步》编写，由于时间比较短所以第三章内容没有全部出来同时编写过程中有错别字，请大家担待。^_^</strong></span></span></p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/292998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-28 17:35 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/28/292998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JQery获取IE和Firefox中的Event对象</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/21/292133.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 21 Aug 2009 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/21/292133.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/292133.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/21/292133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/292133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/292133.html</trackback:ping><description><![CDATA[index.jsp<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="background-color: #ffff00; color: #000000">&lt;%</span><span style="background-color: #f5f5f5; color: #000000">@&nbsp;page&nbsp;language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">java</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;contentType</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">text/html;&nbsp;charset=GB18030</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">&nbsp;pageEncoding</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #f5f5f5; color: #000000">GB18030</span><span style="background-color: #f5f5f5; color: #000000">"</span><span style="background-color: #ffff00; color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Event测试</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="js/jquery-1.2.6.min.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="js/auto_full.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="word"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="word"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span>&nbsp;</div>
<br />
auto_full.js脚本<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">$(document).ready(</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获取输入框</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;wordInput&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">#word</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">给文本框添加按下并弹起事件</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;wordInput.keyup(</span><span style="color: #0000ff">function</span><span style="color: #000000">(e){<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;currKey</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">,CapsLock</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;e</span><span style="color: #000000">=</span><span style="color: #000000">e</span><span style="color: #000000">||</span><span style="color: #000000">event;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currKey</span><span style="color: #000000">=</span><span style="color: #000000">e.keyCode</span><span style="color: #000000">||</span><span style="color: #000000">e.which</span><span style="color: #000000">||</span><span style="color: #000000">e.charCode;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CapsLock</span><span style="color: #000000">=</span><span style="color: #000000">currKey&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">65</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;currKey&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">90</span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;keyCode</span><span style="color: #000000">=</span><span style="color: #000000">e['keyCode'];<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(keyCode</span><span style="color: #000000">&gt;=</span><span style="color: #000000">65</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;keyCode</span><span style="color: #000000">&lt;=</span><span style="color: #000000">90</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;keyCode</span><span style="color: #000000">==</span><span style="color: #000000">8</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;keyCode</span><span style="color: #000000">==</span><span style="color: #000000">46</span><span style="color: #000000">){<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(keyCode);<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(String.fromCharCode(currKey));<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;});<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">});</span></div>
<br />
<a href="/Files/zhangsenwei/test.rar">源码下载</a>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/292133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-21 17:37 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/21/292133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的日期类Date</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291107.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 14 Aug 2009 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291107.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/291107.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/291107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/291107.html</trackback:ping><description><![CDATA[<span style="color: red"><span style="font-family: 宋体; font-size: 10pt"><span style="color: red">
<p><span><span><span style="color: #000000">一、Java中的日期概述 </span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">日期在Java中是一块非常复杂的内容，对于一个日期在不同的语言国别环境中，日期的国际化，日期和时间之间的转换，日期的加减运算，日期的展示格式都是非常复杂的问题。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">在Java中，操作日期主要涉及到一下几个类： </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">1、java.util.Date <br />
类 Date 表示特定的瞬间，精确到毫秒。从 JDK 1.1 开始，应该使用 Calendar 类实现日期和时间字段之间转换，使用 DateFormat 类来格式化和分析日期字符串。Date 中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">2、java.text.DateFormat（抽象类） <br />
DateFormat 是日期/时间格式化子类的抽象类，它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类（如 SimpleDateFormat）允许进行格式化（也就是日期 -&gt; 文本）、分析（文本-&gt; 日期）和标准化。将日期表示为 Date 对象，或者表示为从 GMT（格林尼治标准时间）1970 年，1 月 1 日 00:00:00 这一刻开始的毫秒数。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">3、java.text.SimpleDateFormat（DateFormat的直接子类） <br />
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化（日期 -&gt; 文本）、分析（文本 -&gt; 日期）和规范化。 <br />
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是，仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">4、java.util.Calendar（抽象类） <br />
Calendar 类是一个抽象类，它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法，并为操作日历字段（例如获得下星期的日期）提供了一些方法。瞬间可用毫秒值来表示，它是距历元（即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000，格里高利历）的偏移量。 <br />
与其他语言环境敏感类一样，Calendar 提供了一个类方法 getInstance，以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象，其日历字段已由当前日期和时间初始化。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">5、java.util.GregorianCalendar（Calendar的直接子类） <br />
GregorianCalendar 是 Calendar 的一个具体子类，提供了世界上大多数国家使用的标准日历系统。 <br />
GregorianCalendar 是一种混合日历，在单一间断性的支持下同时支持儒略历和格里高利历系统，在默认情况下，它对应格里高利日历创立时的格里高利历日期（某些国家是在 1582 年 10 月 15 日创立，在其他国家要晚一些）。可由调用方通过调用 setGregorianChange() 来更改起始日期。 </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">二、java.util.Date的使用 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">1、java.util.Date的API简介 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">类 java.util.Date 表示特定的瞬间，精确到毫秒。提供了很多的方法，但是很多已经过时，不推荐使用，下面仅仅列出没有过时的方法： </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">构造方法摘要 <br />
------------- <br />
Date() <br />
分配 Date 对象并用当前时间初始化此对象，以表示分配它的时间（精确到毫秒）。 <br />
Date(long date) <br />
分配 Date 对象并初始化此对象，以表示自从标准基准时间（称为&#8220;历元（epoch）&#8221;，即 1970 年 1 月 1 日 00:00:00 GMT）以来的指定毫秒数。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">方法摘要 <br />
------------- <br />
boolean after(Date when) <br />
测试此日期是否在指定日期之后。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">boolean before(Date when) <br />
测试此日期是否在指定日期之前。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">Object clone() <br />
返回此对象的副本。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">int compareTo(Date anotherDate) <br />
比较两个日期的顺序。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">boolean equals(Object obj) <br />
比较两个日期的相等性。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">long getTime() <br />
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">int hashCode() <br />
返回此对象的哈希码值。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">void setTime(long time) <br />
设置此 Date 对象，以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">String toString() <br />
把此 Date 对象转换为以下形式的 String： dow mon dd hh:mm:ss zzz yyyy 其中： <br />
dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 <br />
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。 <br />
dd 是一月中的某一天（01 至 31），显示为两位十进制数。 <br />
hh 是一天中的小时（00 至 23），显示为两位十进制数。 <br />
mm 是小时中的分钟（00 至 59），显示为两位十进制数。 <br />
ss 是分钟中的秒数（00 至 61），显示为两位十进制数。 <br />
zzz 是时区（并可以反映夏令时）。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息，则 zzz 为空，即根本不包括任何字符。 <br />
yyyy 是年份，显示为 4 位十进制数。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">下面是一个Date类的综合实例: <br />
import java.util.Date; </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">public class TestDate { <br />
public static void main(String args[]) { <br />
TestDate nowDate = new TestDate(); <br />
nowDate.getSystemCurrentTime(); <br />
nowDate.getCurrentDate(); <br />
} </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">public void getSystemCurrentTime() { <br />
System.out.println("----获取系统当前时间----"); <br />
System.out.println("系统当前时间 = " + System.currentTimeMillis()); <br />
} </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">public void getCurrentDate() { <br />
System.out.println("----获取系统当前日期----"); <br />
//创建并初始化一个日期（初始值为当前日期） <br />
Date date = new Date(); <br />
System.out.println("现在的日期是 = " + date.toString()); <br />
System.out.println("自1970年1月1日0时0分0秒开始至今所经历的毫秒数 = " + date.getTime()); <br />
} <br />
} </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">运行结果: <br />
----获取系统当前时间---- <br />
系统当前时间 = 1196413077278 <br />
----获取系统当前日期---- <br />
现在的日期是 = Fri Nov 30 16:57:57 CST 2007 <br />
自1970年1月1日0时0分0秒开始至今所经历的毫秒数 = 1196413077278 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">Process finished with exit code 0 </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">2、java.text.DateFormat抽象类的使用 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">DateFormat 是日期/时间格式化子类的抽象类，它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类（如 SimpleDateFormat）允许进行格式化（也就是日期 -&gt; 文本）、分析（文本-&gt; 日期）和标准化。将日期表示为 Date 对象，或者表示为从 GMT（格林尼治标准时间）1970 年，1 月 1 日 00:00:00 这一刻开始的毫秒数。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">DateFormat 提供了很多类方法，以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用这些风格的更多细节和示例。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">DateFormat 可帮助进行格式化并分析任何语言环境的日期。对于月、星期，甚至日历格式（阴历和阳历），其代码可完全与语言环境的约定无关。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">要格式化一个当前语言环境下的日期，可使用某个静态工厂方法： <br />
myString = DateFormat.getDateInstance().format(myDate); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">&nbsp;</span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">如果格式化多个日期，那么获得该格式并多次使用它是更为高效的做法，这样系统就不必多次获取有关环境语言和国家约定的信息了。 <br />
DateFormat df = DateFormat.getDateInstance(); <br />
for (int i = 0; i &lt; myDate.length; ++i) { <br />
output.println(df.format(myDate[i]) + "; "); <br />
} </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">要格式化不同语言环境的日期，可在 getDateInstance() 的调用中指定它。 <br />
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">还可使用 DateFormat 进行分析。 <br />
myDate = df.parse(myString); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">使用 getDateInstance 来获得该国家的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获得该国家的时间格式。使用 getDateTimeInstance 可获得日期和时间格式。可以将不同选项传入这些工厂方法，以控制结果的长度（从 SHORT 到 MEDIUM 到 LONG 再到 FULL）。确切的结果取决于语言环境，但是通常： <br />
SHORT 完全为数字，如 12.13.52 或 3:30pm <br />
MEDIUM 较长，如 Jan 12, 1952 <br />
LONG 更长，如 January 12, 1952 或 3:30:32pm <br />
FULL 是完全指定，如 Tuesday, April 12, 1952 AD 或 3:30:42pm PST。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">如果愿意，还可以在格式上设置时区。如果想对格式化或分析施加更多的控制（或者给予用户更多的控制），可以尝试将从工厂方法所获得的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家；只是要记住将其放入一个 try 代码块中，以防遇到特殊的格式。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">还可以使用借助 ParsePosition 和 FieldPosition 的分析和格式化方法形式来：逐步地分析字符串的各部分。对齐任意特定的字段，或者找出字符串在屏幕上的选择位置。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">DateFormat 不是同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式，则它必须保持外部同步。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">3、java.text.SimpleDateFormat（DateFormat的直接子类）的使用 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化（日期 -&gt; 文本）、分析（文本 -&gt; 日期）和规范化。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是，仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息，请参阅 DateFormat。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">日期和时间模式 <br />
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中，未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母，用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来，以免进行解释。"''" 表示单引号。所有其他字符均不解释；只是在格式化时将它们简单复制到输出字符串，或者在分析时与输入字符串进行匹配。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">定义了以下模式字母（所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留）： <br />
字母 日期或时间元素 表示 示例 <br />
G Era 标志符 Text AD <br />
y 年 Year 1996; 96 <br />
M 年中的月份 Month July; Jul; 07 <br />
w 年中的周数 Number 27 <br />
W 月份中的周数 Number 2 <br />
D 年中的天数 Number 189 <br />
d 月份中的天数 Number 10 <br />
F 月份中的星期 Number 2 <br />
E 星期中的天数 Text Tuesday; Tue <br />
a Am/pm 标记 Text PM <br />
H 一天中的小时数（0-23） Number 0 <br />
k 一天中的小时数（1-24） Number 24 <br />
K am/pm 中的小时数（0-11） Number 0 <br />
h am/pm 中的小时数（1-12） Number 12 <br />
m 小时中的分钟数 Number 30 <br />
s 分钟中的秒数 Number 55 <br />
S 毫秒数 Number 978 <br />
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 <br />
Z 时区 RFC 822 time zone -0800 </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">更多的参考信息可以查看JDK API文档,下面给出一个综合实例: </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">import java.util.Date; <br />
import java.util.Locale; <br />
import java.text.DateFormat; <br />
import java.text.ParseException; <br />
import java.text.SimpleDateFormat; </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">public class TestSimpleDateFormat { <br />
public static void main(String args[]) throws ParseException { <br />
TestSimpleDateFormat test = new TestSimpleDateFormat(); <br />
test.testDateFormat(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">} </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">public void testDateFormat() throws ParseException { <br />
//创建日期 <br />
Date date = new Date(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">//创建不同的日期格式 <br />
DateFormat df1 = DateFormat.getInstance(); <br />
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE"); <br />
DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA); //产生一个指定国家指定长度的日期格式，长度不同，显示的日期完整性也不同 <br />
DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA); <br />
DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US); <br />
DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd"); <br />
DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日"); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">//将日期按照不同格式进行输出 <br />
System.out.println("-------将日期按照不同格式进行输出------"); <br />
System.out.println("按照Java默认的日期格式，默认的区域 : " + df1.format(date)); <br />
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ，系统默认区域 :" + df2.format(date)); <br />
System.out.println("按照日期的FULL模式，区域设置为中文 : " + df3.format(date)); <br />
System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ，区域为中文 : " + df4.format(date)); <br />
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ，区域为美国 : " + df5.format(date)); <br />
System.out.println("按照指定格式 yyyy-MM-dd ，系统默认区域 : " + df6.format(date)); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">//将符合该格式的字符串转换为日期，若格式不相配，则会出错 <br />
Date date1 = df1.parse("07-11-30 下午2:32"); <br />
Date date2 = df2.parse("2007-11-30 02:51:07 星期五"); <br />
Date date3 = df3.parse("2007年11月30日 星期五"); <br />
Date date4 = df4.parse("2007年11月30日 02时51分18秒 星期五"); <br />
Date date5 = df5.parse("2007-11-30 02:51:18 Friday"); <br />
Date date6 = df6.parse("2007-11-30"); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">System.out.println("-------输出将字符串转换为日期的结果------"); <br />
System.out.println(date1); <br />
System.out.println(date2); <br />
System.out.println(date3); <br />
System.out.println(date4); <br />
System.out.println(date5); <br />
System.out.println(date6); <br />
} <br />
} </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">运行结果: <br />
-------将日期按照不同格式进行输出------ <br />
按照Java默认的日期格式，默认的区域 : 07-11-30 下午5:04 <br />
按照指定格式 yyyy-MM-dd hh:mm:ss EE ，系统默认区域 :2007-11-30 05:04:10 星期五 <br />
按照日期的FULL模式，区域设置为中文 : 2007年11月30日 星期五 <br />
按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ，区域为中文 : 2007年11月30日 05时04分10秒星期五 <br />
按照指定格式 yyyy-MM-dd hh:mm:ss EE ，区域为美国 : 2007-11-30 05:04:10 Friday <br />
按照指定格式 yyyy-MM-dd ，系统默认区域 : 2007-11-30 <br />
-------输出将字符串转换为日期的结果------ <br />
Fri Nov 30 14:32:00 CST 2007 <br />
Fri Nov 30 02:51:07 CST 2007 <br />
Fri Nov 30 00:00:00 CST 2007 <br />
Fri Nov 30 02:51:18 CST 2007 <br />
Fri Nov 30 02:51:18 CST 2007 <br />
Fri Nov 30 00:00:00 CST 2007 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">Process finished with exit code 0 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">4、java.util.Calendar（抽象类） </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">java.util.Calendar是个抽象类，是系统时间的抽象表示，它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法，并为操作日历字段（例如获得下星期的日期）提供了一些方法。瞬间可用毫秒值来表示，它是距历元（即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000，格里高利历）的偏移量。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">与其他语言环境敏感类一样，Calendar 提供了一个类方法 getInstance，以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象，其日历字段已由当前日期和时间初始化。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">一个Calendar的实例是系统时间的抽象表示，从Calendar的实例可以知道年月日星期月份时区等信息。Calendar类中有一个静态方法 get(int x),通过这个方法可以获取到相关实例的一些值（年月日星期月份等）信息。参数x是一个产量值，在Calendar中有定义。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">Calendar中些陷阱，很容易掉下去： <br />
1、Calendar的星期是从周日开始的，常量值为0。 <br />
2、Calendar的月份是从一月开始的，常量值为0。 <br />
3、Calendar的每个月的第一天值为1。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">5、java.util.GregorianCalendar（Calendar的直接子类） </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">GregorianCalendar 是 Calendar 的一个具体子类，提供了世界上大多数国家使用的标准日历系统。结合Calendar抽象类使用。 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">下面给出一个综合实例看看Calendar类的用法： </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">import java.util.*; <br />
import java.text.SimpleDateFormat; </span></span></span></span></span></p>
<p><br />
<span><span><span><span style="color: #000000"><span style="color: #000000">public class TestCalendar { <br />
public static void main(String args[]) { <br />
TestCalendar testCalendar = new TestCalendar(); <br />
testCalendar.testCalendar(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">} </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">public void testCalendar() { <br />
//创建Calendar的方式 <br />
Calendar now1 = Calendar.getInstance(); <br />
Calendar now2 = new GregorianCalendar(); <br />
Calendar now3 = new GregorianCalendar(2007, 10, 30); <br />
Calendar now4 = new GregorianCalendar(2007, 10, 30, 15, 55); //陷阱:Calendar的月份是0~11 <br />
Calendar now5 = new GregorianCalendar(2007, 10, 30, 15, 55, 44); <br />
Calendar now6 = new GregorianCalendar(Locale.US); <br />
Calendar now7 = new GregorianCalendar(TimeZone.getTimeZone("GMT-8:00")); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">//通过日期和毫秒数设置Calendar <br />
now2.setTime(new Date()); <br />
System.out.println(now2); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">now2.setTimeInMillis(new Date().getTime()); <br />
System.out.println(now2); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">//定义日期的中文输出格式,并输出日期 <br />
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E", Locale.CHINA); <br />
System.out.println("获取日期中文格式化化输出：" + df.format(now5.getTime())); <br />
System.out.println(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">System.out.println("--------通过Calendar获取日期中年月日等相关信息--------"); <br />
System.out.println("获取年：" + now5.get(Calendar.YEAR)); <br />
System.out.println("获取月(月份是从0开始的)：" + now5.get(Calendar.MONTH)); <br />
System.out.println("获取日：" + now5.get(Calendar.DAY_OF_MONTH)); <br />
System.out.println("获取时：" + now5.get(Calendar.HOUR)); <br />
System.out.println("获取分：" + now5.get(Calendar.MINUTE)); <br />
System.out.println("获取秒：" + now5.get(Calendar.SECOND)); <br />
System.out.println("获取上午、下午：" + now5.get(Calendar.AM_PM)); <br />
System.out.println("获取星期数值(星期是从周日开始的)：" + now5.get(Calendar.DAY_OF_WEEK)); <br />
System.out.println(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">System.out.println("---------通用星期中文化转换---------"); <br />
String dayOfWeek[] = {"", "日", "一", "二", "三", "四", "五", "六"}; <br />
System.out.println("now5对象的星期是:" + dayOfWeek[now5.get(Calendar.DAY_OF_WEEK)]); <br />
System.out.println(); </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">System.out.println("---------通用月份中文化转换---------"); <br />
String months[] = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"}; <br />
System.out.println("now5对象的月份是: " + months[now5.get(Calendar.MONTH)]); <br />
} <br />
} </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">运行结果： <br />
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0] <br />
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0] <br />
获取日期中文格式化化输出：2007年11月30日 03时55分44秒 星期五 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">--------通过Calendar获取日期中年月日等相关信息-------- <br />
获取年：2007 <br />
获取月(月份是从0开始的)：10 <br />
获取日：30 <br />
获取时：3 <br />
获取分：55 <br />
获取秒：44 <br />
获取上午、下午：1 <br />
获取星期数值(星期是从周日开始的)：6 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">---------通用星期中文化转换--------- <br />
now5对象的星期是:五 </span></span></span></span></span></p>
<p><span><span><span><span style="color: #000000"><span style="color: #000000">---------通用月份中文化转换--------- <br />
now5对象的月份是: 十一月</span></span></span></span> </span></p>
<p><span>&nbsp;</span></p>
<p><br />
<span>转载请注明出处</span></span><span>，谢谢！</span><a href="http://www.blogjava.net/zhangsenwei"><span>http://www.blogjava.net/zhangsenwei</span></a><span>（张森炜JavaEE技术博客）</span></span></span><br />
</p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/291107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-14 08:55 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 所需jar包详解</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291104.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Fri, 14 Aug 2009 00:36:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291104.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/291104.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/291104.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/291104.html</trackback:ping><description><![CDATA[<strong style="color: black"><span id="span1250210112712"><strong style="background-color: #ffff66">Struts2</strong>.1.x终于推出正式版了，下载后按照Struts 2.0.14版进行配置，抛出异常说无法装载 (org.apache.<strong style="background-color: #ffff66">struts2</strong>.dispatcher.multipart.MultiPartRequest)，异常信息提示摘不到 org.apache.commons.fileupload.RequestContext类，搜索<strong style="background-color: #ffff66">struts2</strong>.1.6带的所有jar包，发现RequestContext类并不在<strong style="background-color: #ffff66">struts2</strong>-core-2.1.6.jar 中，在commons-fileupload-1.2.1.jar包中，之前<strong style="background-color: #ffff66">struts2</strong>.0.14并不需要此包，只有在要用到上传组件的时候才需要。可能是<strong style="background-color: #ffff66">struts2</strong>.1.6对文件上传功能的改进。因此要想正常使用<strong style="background-color: #ffff66">struts2</strong>.1.6，至少需要如下6 个jar包：
<ul>
    <li><strong style="background-color: #ffff66">struts2</strong>-core-2.1.6.jar
    <li>freemarker-2.3.13.jar
    <li>commons-logging-1.0.4.jar
    <li>ognl-2.6.11.jar
    <li>xwork-2.1.2.jar
    <li>commons-fileupload-1.2.1.jar <br />
    <br />
    要注意的是，Struts 2.1.6的最小jar包配置比<strong style="background-color: #ffff66">Struts2</strong>.0.14多了一个commons-fileupload-1.2.1.jar。 <br />
    如果要使用<strong style="background-color: #ffff66">Struts2</strong>的注释功能，在<strong style="background-color: #ffff66">Struts2</strong>.0.14中只要引用了<strong style="background-color: #ffff66">struts2</strong>-core-2.1.6.jar文件即可，而在 <strong style="background-color: #ffff66">struts2</strong>.1.6中还需要引用<strong style="background-color: #ffff66">struts2</strong>-convention-plugin-2.1.6.jar文件，而且注释类的包也变了（又增加了一些新的注释类），<strong style="background-color: #ffff66">Struts2</strong>.0.14中的注释类在org.apache.<strong style="background-color: #ffff66">struts2</strong>.config包中，而<strong style="background-color: #ffff66">struts2</strong>.1.6的注释类在 org.apache.<strong style="background-color: #ffff66">struts2</strong>.convention.annotation包中。除此之外，有些注释的属性名也变了，如Result注释在 <strong style="background-color: #ffff66">struts2</strong>.0.14中有一个value属性，表示一个要转入的URL，而在<strong style="background-color: #ffff66">Struts2</strong>.1.6的Result注释中使用location属性代替了value属性（不再有value属性了），但它们的使用方法相同。 <br />
    因此，读者在使用<strong style="background-color: #ffff66">Struts2</strong>.1.x时要注意，这一版本与<strong style="background-color: #ffff66">Struts2</strong>.0.x并不完全兼容（但大部分还是兼容的）。据我的经验，<strong style="background-color: #ffff66">Struts2</strong>.1.x版本将是比较稳定的一个<strong style="background-color: #ffff66">Struts2</strong>版本，因此，Struts1.x就是在Struts1.1版本才开始流行起来的。 <br />
    以前也测试过<strong style="background-color: #ffff66">Struts2</strong>的其他版本，经部分测试，目前Struts 2分为三个版本阶段：Struts 2.0.9及以前版本、<strong style="background-color: #ffff66">Struts2</strong>.0.10至<strong style="background-color: #ffff66">Struts2</strong>.0.14、Struts 2.1.x，这三类版本都不太兼容，如果确定使用<strong style="background-color: #ffff66">struts2</strong>来开发程序，建议直接使用<strong style="background-color: #ffff66">struts2</strong>.1.6及以后的版本，这是一个比较稳定的<strong style="background-color: #ffff66">Struts2</strong>版本。 </li>
</ul>
</span>~</strong>
 <img src ="http://www.blogjava.net/zhangsenwei/aggbug/291104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-14 08:36 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/14/291104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>po、vo、bo、dao、pojo的解释</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290940.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Thu, 13 Aug 2009 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290940.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/290940.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/290940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/290940.html</trackback:ping><description><![CDATA[<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 16px Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 18px; font-family: Arial; font-size: 12px" class="Apple-style-span">java的几种对象(PO,VO,DAO,BO,POJO)解释<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp;&nbsp; 一、PO: persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录，多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
&nbsp;&nbsp; 二、VO: value object值对象。通常用于业务层之间的数据传递，和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
&nbsp;&nbsp; 三、DAO: data access object 数据访问对象，此对象用于访问数据库。通常和PO结合使用，DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
&nbsp;&nbsp; 四、BO: business object 业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
&nbsp;&nbsp; 五、POJO: plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
PO：<span class="Apple-converted-space">&nbsp;</span><br />
persistant object持久对象<span class="Apple-converted-space">&nbsp;</span><br />
最形象的理解就是一个PO就是数据库中的一条记录。<span class="Apple-converted-space">&nbsp;</span><br />
好处是可以把一条记录作为一个对象处理，可以方便的转为其它对象。<span class="Apple-converted-space">&nbsp;</span><br />
BO：<span class="Apple-converted-space">&nbsp;</span><br />
business object业务对象<span class="Apple-converted-space">&nbsp;</span><br />
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。<span class="Apple-converted-space">&nbsp;</span><br />
比如一个简历，有教育经历、工作经历、&nbsp; 关系等等。<span class="Apple-converted-space">&nbsp;</span><br />
我们可以把教育经历对应一个PO，工作经历对应一个PO，&nbsp; 关系对应一个PO。<span class="Apple-converted-space">&nbsp;</span><br />
建立一个对应简历的BO对象处理简历，每个BO包含这些PO。<span class="Apple-converted-space">&nbsp;</span><br />
这样处理业务逻辑时，我们就可以针对BO去处理。<span class="Apple-converted-space">&nbsp;</span><br />
VO ：<span class="Apple-converted-space">&nbsp;</span><br />
value object值对象<span class="Apple-converted-space">&nbsp;</span><br />
ViewObject表现层对象<span class="Apple-converted-space">&nbsp;</span><br />
主要对应界面显示的数据对象。对于一个WEB页面，或者SWT、SWING的一个界面，用一个VO对象对应整个界面的值。<span class="Apple-converted-space">&nbsp;</span><br />
DTO ：<span class="Apple-converted-space">&nbsp;</span><br />
Data Transfer Object数据传输对象<span class="Apple-converted-space">&nbsp;</span><br />
主要用于远程调用等需要大量传输对象的地方。<span class="Apple-converted-space">&nbsp;</span><br />
比如我们一张表有100个字段，那么对应的PO就有100个属性。<span class="Apple-converted-space">&nbsp;</span><br />
但是我们界面上只要显示10个字段，<span class="Apple-converted-space">&nbsp;</span><br />
客户端用WEB service来获取数据，没有必要把整个PO对象传递到客户端，<span class="Apple-converted-space">&nbsp;</span><br />
这时我们就可以用只有这10个属性的DTO来传递结果到客户端，这样也不会暴露服务端表结构.到达客户端以后，如果用这个对象来对应界面显示，那此时它的身份就转为VO<span class="Apple-converted-space">&nbsp;</span><br />
POJO ：<span class="Apple-converted-space">&nbsp;</span><br />
plain ordinary java object 简单java对象<span class="Apple-converted-space">&nbsp;</span><br />
个人感觉POJO是最常见最多变的对象，是一个中间对象，也是我们最常打交道的对象。<span class="Apple-converted-space">&nbsp;</span><br />
一个POJO持久化以后就是PO<span class="Apple-converted-space">&nbsp;</span><br />
直接用它传递、传递过程中就是DTO<span class="Apple-converted-space">&nbsp;</span><br />
直接用来对应表示层就是VO<span class="Apple-converted-space">&nbsp;</span><br />
DAO：<span class="Apple-converted-space">&nbsp;</span><br />
data access object数据访问对象<span class="Apple-converted-space">&nbsp;</span><br />
这个大家最熟悉，和上面几个O区别最大，基本没有互相转化的可能性和必要.<span class="Apple-converted-space">&nbsp;</span><br />
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO，用PO组装出来VO、DTO<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 总结下我认为一个对象究竟是什么O要看具体环境，在不同的层、不同的应用场合，对象的身份也不一样，而且对象身份的转化也是很自然的。就像你对老婆来说就是老公，对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑，让大家能更好的去用面向对象的方式处理问题.社会社会</span></span></p>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/290940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-13 10:16 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jquery 操作单选框，复选框，下拉列表</title><link>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290939.html</link><dc:creator>张森炜</dc:creator><author>张森炜</author><pubDate>Thu, 13 Aug 2009 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290939.html</guid><wfw:comment>http://www.blogjava.net/zhangsenwei/comments/290939.html</wfw:comment><comments>http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangsenwei/comments/commentRss/290939.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangsenwei/services/trackbacks/290939.html</trackback:ping><description><![CDATA[<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: red; ">1、复选框全选操作
：</span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">html代码</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-
bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">form</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;您爱好的运动是：&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="checkbox"</span><span style="color: #FF0000; ">&nbsp;name</span><span style="color: #0000FF; ">="item"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="football"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;football&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="checkbox"</span><span style="color: #FF0000; ">&nbsp;name</span><span style="color: #0000FF; ">="item"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="basketball"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;basketball&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="checkbox"</span><span style="color: #FF0000; ">&nbsp;name</span><span style="color: #0000FF; ">="item"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="badminton"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;badminton&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="checkbox"</span><span style="color: #FF0000; ">&nbsp;name</span><span style="color: #0000FF; ">="item"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="pingpong"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;pingpong&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="button"</span><span style="color: #FF0000; ">&nbsp;id</span><span style="color: #0000FF; ">="checkAll"</span><span style="color:
#FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="全选"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">input&nbsp;</span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="button"</span><span style="color: #FF0000; ">&nbsp;id</span><span style="color: #0000FF; ">="checkFootball"</span><span style="color:
#FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="选中足球"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">form</span><span style="color:
#0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;</span></div>
<br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-
bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#checkAll</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click
(checkAll);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;全选&nbsp;&nbsp;</span><span style="color: #000000; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp;&nbsp; $(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#checkFootball</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click
(checkFootball);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;单选足球
&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">});&nbsp;&nbsp;<br />
function&nbsp;checkAll()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">input
[type="checkbox"][name="item"]</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).attr
(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">checked</span><span style="color:
#000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;
$('[name="item"]:checkbox').attr("checked",&nbsp;true);&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">}</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">注： 全反选只需要将这里的 true 换成 false 即
可。&nbsp;</span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #0031c6; "><span style="color: #0031c6; ">选中足球操作</span></span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-
bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">function&nbsp;checkFootball()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">
[name='item']:checkbox</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).each(function
()&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color:
#000000; ">&nbsp;(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.value&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">football</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.checked&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;})&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
} &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">注： 具体目的为了解决从后台取出数据，显示。
这里并没有用jQuery的attr()和val()方法来设置选中和获得当前checkbox的值，改用了JavaScript原生的 Dom 方法，将比创建
jQuery对象更有效</span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: red; ">2. 单选按钮操作
</span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">html代码</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-
bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">A&nbsp;B&nbsp;C&nbsp;D&nbsp;您选择哪一个：</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">br</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">radio</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">item</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">A</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">A&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">radio</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">item</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">B</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">B&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">radio</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">item</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">C</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">C&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">radio</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">item</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">D</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">D&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">button</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">getLetter</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">获得字母
</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color:
#000000; ">&nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #0031c6; ">初始化选中字
母B</span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-
bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">$(document).ready(function()&nbsp;
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;数据初始化选
择B。&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">[name="item"]:radio</span><span style="color: #000000; ">'</span><span style="color:
#000000; ">).each(function()&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color:
#000000; ">&nbsp;(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.value&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">B</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.checked&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;绑定获
得字母的事件&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#getLetter</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click(getLetter);&nbsp;&nbsp;<br />
}); &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #0031c6; ">获得所选中的
字母&nbsp;</span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">function&nbsp;getLetter()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;alert(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">获得的字母为：</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">[name="item"][checked=true]:radio</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).val());&nbsp;&nbsp;<br />
} &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: red; ">3. 下拉框(列表)操作</span>&nbsp;</span><br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">select&nbsp;multiple&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">choose</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;style</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">width=100px;heigth=160px</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;&lt;/</span><span style="color: #000000; ">select</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">addOptions</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">button</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">添加数据</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">getSelectedOption</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">button</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">获得选中的值</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;id</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">clearOptions</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">button</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">清空列表</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">$(document).ready(function()&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#addOptions</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click(addOptions);&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;为列表添加元素&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#getSelectedOption</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click(getSelectedOption);&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;获得选中的元素&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#clearOptions</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click(clearOptions);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;清楚列表中的元素&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#addOptions</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).click();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;触发为列表添加元素事件&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">}); &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #000ff4; "><span style="color: #000ff4; ">追加元素</span></span></span><br />
<span style="font-family: Arial; font-size: 12px; line-height: 18px; ">Jquey js&nbsp;脚本</span>:<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">function&nbsp;addOptions()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;var&nbsp;selectContainer&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#choose</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(var&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">5</span><span style="color: #000000; ">;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;option&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&lt;option&gt;&lt;/option&gt;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).text(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">choose</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;i).val(i);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectContainer.append(option);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />
} &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #000ff4; ">获得选中的元素&nbsp;</span></span><br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">function&nbsp;getSelectedOption()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;逐个弹出每个元素&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; ">&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;options&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#choose&nbsp;&gt;&nbsp;option:selected</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$.each(options,&nbsp;function&nbsp;()&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">option:&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.value);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;逐个弹出每个元素，第一种的简写&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#choose&nbsp;&gt;&nbsp;option:selected</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).each(function()&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">option2:&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.value);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;直接弹出数据，&nbsp;如果是对下拉框，则直接弹出数据，如果是列表并且选择了多个数&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;据，将数据以'，'分隔显示&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">val:&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#choose</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).val());&nbsp;&nbsp;<br />
} &nbsp;</span></div>
<span style="font-family: Arial; font-size: 12px; line-height: 18px; "><span style="color: #000ff4; ">清空列表&nbsp;</span></span><br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">function&nbsp;clearOptions()&nbsp;&nbsp;<br />
{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;$(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">#choose</span><span style="color: #000000; ">'</span><span style="color: #000000; ">).empty();&nbsp;&nbsp;<br />
} &nbsp;</span></div>
<img src ="http://www.blogjava.net/zhangsenwei/aggbug/290939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangsenwei/" target="_blank">张森炜</a> 2009-08-13 10:14 <a href="http://www.blogjava.net/zhangsenwei/archive/2009/08/13/290939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>