<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>选择最好的最喜欢的......</title>
    <description>广交天下有识之士！</description>
    <link>http://ddh9504.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>ajax又一例（mootools）</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/182989" style="color:red;">http://ddh9504.javaeye.com/blog/182989</a>&nbsp;
          发表时间: 2008年04月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这是一个关于ajax的简单的例子，希望能给您带来方便，谢谢！！</p>
<p>js框架：mootools</p>
<p>//handle.js&nbsp; logic handle</p>
<p>function total(){</p>
<p>这是第一种请求方式：<br />&nbsp;//first method<br />&nbsp;var postArgs = $('totalForm').toQueryString();<br />&nbsp;new Ajax('result.jsp',{<br />&nbsp;postBody:postArgs,<br />&nbsp;update:'total'}<br />&nbsp;).request();<br />&nbsp;return false;</p>
<p>这是第二种请求方式：<br />&nbsp;<br />&nbsp;//second method<br />&nbsp;$('totalForm').send({update:'total'});<br />&nbsp;return false;<br />&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;<br />}</p>
<p>其详细资料请看附件.</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/182989#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Apr 2008 17:56:25 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/182989</link>
        <guid>http://ddh9504.javaeye.com/blog/182989</guid>
      </item>
      <item>
        <title>DWR又一例级联（省份-城市）</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/181770" style="color:red;">http://ddh9504.javaeye.com/blog/181770</a>&nbsp;
          发表时间: 2008年04月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>我用DWR做了一个级联选择的例子，希望能给你带来方便，谢谢！！！</p>
<p>web.xml----------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;web-app version="2.4" xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>"<br />&nbsp;xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br />&nbsp;xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a> <br />&nbsp;<a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>"&gt;</p>
<p>&nbsp;&lt;servlet&gt;<br />&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&lt;servlet-class&gt;<br />&nbsp;&nbsp;&nbsp;org.directwebremoting.servlet.DwrServlet<br />&nbsp;&nbsp;&lt;/servlet-class&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;activeReverseAjaxEnabled&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;initApplicationScopeCreatorsAtStartup<br />&nbsp;&nbsp;&nbsp;&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;maxWaitAfterWrite&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;500&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&nbsp;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />&nbsp;&lt;/servlet&gt;</p>
<p>&nbsp;&lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<br />&nbsp;&lt;/servlet-mapping&gt;</p>
<p>&nbsp;&lt;welcome-file-list&gt;<br />&nbsp;&nbsp;&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />&nbsp;&lt;/welcome-file-list&gt;<br />&lt;/web-app&gt;</p>
<p>dwr.xml---------------------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "<a href="http://getahead.org/dwr/dwr20.dtd">http://getahead.org/dwr/dwr20.dtd</a>"&gt;</p>
<p>&lt;dwr&gt;</p>
<p>&nbsp;&lt;allow&gt;</p>
<p>&nbsp;&nbsp;&lt;convert converter="bean" match="com.dwr.CityBean"&gt;&lt;/convert&gt;</p>
<p>&nbsp;&nbsp;&lt;create creator="new" javascript="DWRHandle"<br />&nbsp;&nbsp;&nbsp;class="com.dwr.DwrHandle" scope="session"&gt;<br />&nbsp;&nbsp;&nbsp;&lt;include method="getCityList" /&gt;<br />&nbsp;&nbsp;&nbsp;&lt;include method="getProvinceList" /&gt;<br />&nbsp;&nbsp;&lt;/create&gt;</p>
<p>&nbsp;&nbsp;&lt;!--&nbsp; <br />&nbsp;&nbsp;&nbsp;&lt;create creator="spring" javascript="DWRCategory"&gt;&nbsp; <br />&nbsp;&nbsp;&nbsp;&lt;param name="beanName" value="DWRCategory"/&gt;&nbsp; <br />&nbsp;&nbsp;&nbsp;&lt;/create&gt; <br />&nbsp;&nbsp;--&gt;<br />&nbsp;&lt;/allow&gt;</p>
<p>&lt;/dwr&gt;</p>
<p>&nbsp;</p>
<p>hand.js-------------</p>
<p>//handle&nbsp;&nbsp; author ddh<br />function _load(){<br />&nbsp;DWRHandle.getProvinceList(loadCall);<br />}<br />//callback<br />function loadCall(data)<br />{<br />&nbsp;if(data)<br />&nbsp;{<br />&nbsp;&nbsp;var selects="&lt;select id='province' onchange='showCity()'&gt;&lt;option id='0' &gt;省份&lt;/option&gt;";<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;for(var i=0;i&lt;data.length;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;selects=selects+"&lt;option id='"+data[i].id+"'&gt;"+data[i].name+"&lt;/option&gt;";<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;selects=selects+"&lt;/select&gt;";<br />&nbsp;&nbsp;<br />&nbsp;&nbsp; //DWRUtil.setValue("proninceDiv",selects,true);<br />&nbsp;&nbsp;document.getElementById("proninceDiv").innerHTML=selects;<br />&nbsp;}&nbsp;<br />}</p>
<p>function showCity()<br />{<br />&nbsp;var provs=document.getElementById("province");<br />&nbsp;&nbsp; <br />&nbsp; for(i=0;i&lt;provs.options.length;i++)&nbsp;&nbsp; <br />&nbsp; {&nbsp;&nbsp; <br />&nbsp;&nbsp; if(provs.options[i].selected){<br />&nbsp;&nbsp; &nbsp;//alert(provs.options[i].id);<br />&nbsp;&nbsp; &nbsp;if(provs.options[i].id!=0){<br />&nbsp;&nbsp; &nbsp;&nbsp;DWRHandle.getCityList(provs.options[i].id,showCityCall);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; }<br />&nbsp; }</p>
<p>}<br />//callback<br />function showCityCall(data)<br />{<br />&nbsp;if(data)<br />&nbsp;{<br />&nbsp;&nbsp;var selects="&lt;select id='city' onchange='getCity()'&gt;&lt;option id='0' &gt;城市&lt;/option&gt;";<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;for(var i=0;i&lt;data.length;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;selects=selects+"&lt;option id='"+data[i].id+"'&gt;"+data[i].name+"&lt;/option&gt;";<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;selects=selects+"&lt;/select&gt;";&nbsp;&nbsp;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp;document.getElementById("cityDiv").innerHTML=selects;<br />&nbsp;&nbsp;<br />&nbsp;}<br />&nbsp;<br />}<br />function getCity()<br />{<br />&nbsp;var citys=document.getElementById("city");<br />&nbsp;&nbsp; <br />&nbsp; for(i=0;i&lt;citys.options.length;i++)&nbsp;&nbsp; <br />&nbsp; {&nbsp;&nbsp; <br />&nbsp;&nbsp; if(citys.options[i].selected){<br />&nbsp;&nbsp; &nbsp;alert(citys.options[i].innerHTML);<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; }<br />&nbsp; }<br />}</p>
<p>index.jsp-------------</p>
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&gt;<br />&lt;%<br />String path = request.getContextPath();<br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />&lt;html&gt;<br />&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;title&gt;cascade page&lt;/title&gt;<br />&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />&nbsp;&lt;!--<br />&nbsp;&lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<br />&nbsp;--&gt;<br />&nbsp;&lt;!-- import js -- author ddh --&gt;<br />&nbsp;&lt;script type='text/javascript' src='/CascadeofDWR/dwr/interface/DWRHandle.js'&gt;&lt;/script&gt;<br />&nbsp;&lt;script type='text/javascript' src='/CascadeofDWR/dwr/engine.js'&gt;&lt;/script&gt;<br />&nbsp;&lt;script type='text/javascript' src='/CascadeofDWR/dwr/util.js'&gt;&lt;/script&gt;<br />&nbsp;&lt;script type='text/javascript' src='js/handle.js'&gt;&lt;/script&gt;<br />&nbsp; &lt;/head&gt;<br />&nbsp; <br />&nbsp; &lt;body onload="_load();"&gt;<br />&nbsp;&nbsp;&nbsp; Welcome to here! &lt;br&gt;<br />&nbsp;&nbsp;&nbsp; &lt;br/&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;table&gt;<br />&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt; &lt;div id="proninceDiv"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div id="cityDiv" /&gt;&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />&nbsp; <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</p>
<p>其详细资料请看附件，谢谢。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/181770#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 11 Apr 2008 14:29:37 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/181770</link>
        <guid>http://ddh9504.javaeye.com/blog/181770</guid>
      </item>
      <item>
        <title>一个关于ajax的例子(prototype)</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/181567" style="color:red;">http://ddh9504.javaeye.com/blog/181567</a>&nbsp;
          发表时间: 2008年04月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>自己做了一个关于ajax的例子，希望能给你带来方便，谢谢!!!</p>
<p>所用的JS框架是prototype-1.6.0.2.js当前最新版。</p>
<p>demo.js-------------</p>
<p>&nbsp;//demo<br />var Demo=Class.create();<br />Demo.prototype={<br />&nbsp;//init&nbsp;<br />&nbsp;initialize:function(){<br />&nbsp;&nbsp;this.author="ddh";&nbsp;<br />&nbsp;&nbsp;this.url="handle.jsp";<br />&nbsp;&nbsp;this.pars="";<br />&nbsp;},&nbsp;<br />&nbsp;//submit<br />&nbsp;submitData:function(title,content,divName){<br />&nbsp;this.pars="title="+title+"&amp;content="+content;<br />&nbsp; new Ajax.Updater(<br />&nbsp;&nbsp;divName,<br />&nbsp;&nbsp;this.url,<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;method: 'get',<br />&nbsp;&nbsp;parameters: this.pars<br />&nbsp;&nbsp;});<br />&nbsp;}<br />}</p>
<p>&nbsp;</p>
<p>handle.js-------------</p>
<p>//handle</p>
<p>function _submitData()<br />&nbsp;{<br />&nbsp;<br />&nbsp;&nbsp;demo=new Demo();<br />&nbsp;&nbsp;demo.submitData($F('title'),$F('content'),'result');&nbsp;<br />&nbsp;}</p>
<p>&nbsp;</p>
<p>index.jsp---------------</p>
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%&gt;<br />&lt;%<br />String path = request.getContextPath();<br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />&lt;html&gt;<br />&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;title&gt;insert news&lt;/title&gt;<br />&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />&nbsp;&lt;!--<br />&nbsp;&lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<br />&nbsp;--&gt;<br />&nbsp;<br />&nbsp;&lt;script type="text/javascript" src="js/prototype-1.6.0.2.js"&gt;&lt;/script&gt;<br />&nbsp;&lt;script type="text/javascript" src="js/demo.js"&gt;&lt;/script&gt;<br />&nbsp;&lt;script type="text/javascript" src="js/handle.js"&gt;&lt;/script&gt;<br />&nbsp; &lt;/head&gt;<br />&nbsp; <br />&nbsp; &lt;body&gt;<br />&nbsp; Insert News &lt;br&gt;&amp;nbsp;&lt;br&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; Title: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input id="title" name="title"&gt;&lt;br/&gt;<br />&nbsp;&nbsp; Content:&lt;textarea id="content" name="content" rows="5" cols="17"&gt;&lt;/textarea&gt;<br />&nbsp;&nbsp; &lt;br/&gt;&lt;br/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;input type="button" onclick="_submitData();" value="submit"&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;div id="result"&gt;&lt;/div&gt;<br />&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>其详细资料请查看附件。</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/181567#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 11 Apr 2008 10:04:24 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/181567</link>
        <guid>http://ddh9504.javaeye.com/blog/181567</guid>
      </item>
      <item>
        <title>一个关于SWF(spring webflow)的DEMO</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/181554" style="color:red;">http://ddh9504.javaeye.com/blog/181554</a>&nbsp;
          发表时间: 2008年04月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>自己做了一个关于关于SWF的例子，希望能给你带来方便，谢谢！</p>
<p>&nbsp;</p>
<p>web.xml-----------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;web-app version="2.4" <br />&nbsp;xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>" <br />&nbsp;xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" <br />&nbsp;xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a> <br />&nbsp;<a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>"&gt;<br />&nbsp;&lt;display-name&gt;swfdemo&lt;/display-name&gt;<br />&nbsp;&lt;context-param&gt;<br />&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />&nbsp;&nbsp;&lt;param-value&gt;classpath:applicationContext*.xml&lt;/param-value&gt;<br />&nbsp;&lt;/context-param&gt;<br />&nbsp;&lt;listener&gt;<br />&nbsp;&nbsp;&lt;listener-class&gt;<br />&nbsp;&nbsp;&nbsp;org.springframework.web.context.ContextLoaderListener<br />&nbsp;&nbsp;&lt;/listener-class&gt;<br />&nbsp;&lt;/listener&gt;<br />&nbsp;&lt;servlet&gt;<br />&nbsp;&nbsp;&lt;servlet-name&gt;app&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&lt;servlet-class&gt;<br />&nbsp;&nbsp;&nbsp;org.springframework.web.servlet.DispatcherServlet<br />&nbsp;&nbsp;&lt;/servlet-class&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/webflow.xml<br />&nbsp;&nbsp;&nbsp;&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&lt;/servlet&gt;<br />&nbsp;&lt;servlet-mapping&gt;<br />&nbsp;&nbsp;&lt;servlet-name&gt;app&lt;/servlet-name&gt;<br />&nbsp;&nbsp;&lt;url-pattern&gt;*.swf&lt;/url-pattern&gt;<br />&nbsp;&lt;/servlet-mapping&gt;<br />&nbsp;<br />&nbsp;&lt;filter&gt;<br />&nbsp;&nbsp;&lt;filter-name&gt;characterFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&lt;filter-class&gt;<br />&nbsp;&nbsp;&nbsp;org.springframework.web.filter.CharacterEncodingFilter<br />&nbsp;&nbsp;&lt;/filter-class&gt;<br />&nbsp;&nbsp;&lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-name&gt;encoding&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp;&lt;param-value&gt;UTF-8&lt;/param-value&gt;<br />&nbsp;&nbsp;&lt;/init-param&gt;<br />&nbsp;&lt;/filter&gt;<br />&nbsp;&lt;filter-mapping&gt;<br />&nbsp;&nbsp;&lt;filter-name&gt;characterFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&lt;servlet-name&gt;app&lt;/servlet-name&gt;<br />&nbsp;&lt;/filter-mapping&gt;<br />&nbsp;<br />&nbsp; &lt;welcome-file-list&gt;<br />&nbsp;&nbsp;&nbsp; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp; &lt;/welcome-file-list&gt;<br />&lt;/web-app&gt;</p>
<p>&nbsp;</p>
<p>webflow.xml-----------------------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"<br />&nbsp;&nbsp;"<a href="http://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd</a>"&gt;<br />&lt;beans&gt;<br />&nbsp; &lt;bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/&gt;<br />&nbsp; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;property name="prefix" value="/"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;property name="suffix" value=".jsp"/&gt;<br />&nbsp; &lt;/bean&gt;<br />&nbsp; <br />&nbsp;&nbsp; &lt;bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;property name="basenames"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;com.swf.swf&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp; &lt;/bean&gt;<br />&nbsp; <br />&nbsp; &lt;bean name="/demo.swf" class="org.springframework.webflow.executor.mvc.FlowController"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;property name="flowLocator"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean class="org.springframework.webflow.registry.XmlFlowRegistryFactoryBean"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="flowLocations"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;classpath:com/swf/*.xml&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="defaultFlowId" value="getSWF"/&gt;<br />&nbsp; &lt;/bean&gt;&nbsp; <br />&lt;/beans&gt;</p>
<p>swf.xml------------------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"<br />&nbsp;&nbsp;"<a href="http://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd</a>"&gt;<br />&lt;beans&gt;<br />&nbsp;<br />&nbsp;&lt;bean id="getDemoAction" class="com.swf.GetDemoAction"/&gt;<br />&nbsp;<br />&lt;/beans&gt;</p>
<p>getSWF----------------------------</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE flow PUBLIC "-//SPRING//DTD WEBFLOW 1.0//EN"<br />&nbsp;"<a href="http://www.springframework.org/dtd/spring-webflow-1.0.dtd">http://www.springframework.org/dtd/spring-webflow-1.0.dtd</a>"&gt;<br />&nbsp;&lt;flow start-state="getSWF"&gt;<br />&nbsp; &lt;action-state id="getSWF"&nbsp; &gt;<br />&nbsp;&nbsp;&nbsp; &lt;action bean="getDemoAction"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;transition on="*" to="finish"/&gt;<br />&nbsp; &lt;/action-state&gt;<br />&nbsp; &lt;end-state id="finish" view="swf/index"/&gt;<br />&nbsp; &lt;import resource="swf.xml"/&gt;<br />&lt;/flow&gt;</p>
<p>&nbsp;</p>
<p>其详细资料请见附件，谢谢！！！</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/181554#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 11 Apr 2008 09:55:58 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/181554</link>
        <guid>http://ddh9504.javaeye.com/blog/181554</guid>
      </item>
      <item>
        <title>一个关于DWR的例子</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/139319" style="color:red;">http://ddh9504.javaeye.com/blog/139319</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>自己做的一个关于DWR的例子。</p>
<p>&nbsp;</p>
<p>index.jsp</p>
<p>-------------------------------------------</p>
<p><font face="Arial">&lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;utf-8&quot;%&gt;<br />
&lt;%<br />
String path = request.getContextPath();<br />
String basePath = request.getScheme()+&quot;://&quot;+request.getServerName()+&quot;:&quot;+request.getServerPort()+path+&quot;/&quot;;<br />
%&gt;</font></p>
<p><font face="Arial">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;base href=&quot;&lt;%=basePath%&gt;&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;DWR&nbsp; DEMO&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv=&quot;pragma&quot; content=&quot;no-cache&quot;&gt;<br />
&nbsp;&lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt;<br />
&nbsp;&lt;meta http-equiv=&quot;expires&quot; content=&quot;0&quot;&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv=&quot;keywords&quot; content=&quot;keyword1,keyword2,keyword3&quot;&gt;<br />
&nbsp;&lt;meta http-equiv=&quot;description&quot; content=&quot;This is my page&quot;&gt;<br />
&nbsp;&lt;!--<br />
&nbsp;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;styles.css&quot;&gt;<br />
&nbsp;--&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/DWRDemo/dwr/interface/DWRExample.js'&gt;&lt;/script&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/DWRDemo/dwr/engine.js'&gt;&lt;/script&gt;<br />
&nbsp; &lt;script type='text/javascript' src='/DWRDemo/dwr/util.js'&gt;&lt;/script&gt;</font></p>
<p><font face="Arial">&nbsp; </font></p>
<p><font face="Arial">&nbsp; &lt;script type=&quot;text/javascript&quot;&gt;<br />
&nbsp; <br />
&nbsp; function show()<br />
&nbsp; {<br />
&nbsp;&nbsp; //display list data<br />
&nbsp;&nbsp;&nbsp; DWRExample.getList(call);<br />
&nbsp; }<br />
&nbsp; function call(data)<br />
&nbsp; {<br />
&nbsp; &nbsp;if(data)<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;var content=&quot;name&nbsp;&nbsp;&nbsp; age&lt;br/&gt;&quot;;<br />
&nbsp; &nbsp;&nbsp;for(var i=0;i&lt;data.length;i++)<br />
&nbsp; &nbsp;&nbsp;{<br />
&nbsp; &nbsp;&nbsp;&nbsp;//alert(data[i].name);<br />
&nbsp; &nbsp;&nbsp;&nbsp;content+=(data[i].name+&quot;&nbsp; &quot;+data[i].age+&quot;&lt;br/&gt;&quot;)<br />
&nbsp; &nbsp;&nbsp;}<br />
&nbsp; &nbsp;&nbsp;DWRUtil.setValue(&quot;DemoDiv&quot;,content);<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;}<br />
&nbsp; }<br />
&nbsp; <br />
&nbsp;<br />
&nbsp; function validateForm()<br />
&nbsp; {<br />
&nbsp;&nbsp;//validate user name<br />
&nbsp; &nbsp;//var name=document.getElementById(&quot;name&quot;);<br />
&nbsp; &nbsp;var name=DWRUtil.getValue(&quot;name&quot;);<br />
&nbsp; &nbsp;if(name==null || name==&quot;&quot;)<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp;alert(&quot;name is null!&quot;);<br />
&nbsp; &nbsp;}else<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp;<br />
&nbsp;&nbsp;DWRExample.checkUser(name,callBack);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp; &nbsp;}<br />
&nbsp; }<br />
&nbsp; function callBack(data)<br />
&nbsp; { &nbsp;<br />
&nbsp; &nbsp;if(data)<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp;//alert(&quot;name is right!&quot;);<br />
&nbsp; &nbsp;&nbsp;//name=='xy' return to current page<br />
&nbsp; &nbsp;&nbsp;window.location.href=&quot;/DWRDemo/&quot;;<br />
&nbsp; &nbsp;}else<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp;alert(&quot;name is not exist!&quot;);<br />
&nbsp; &nbsp;}<br />
&nbsp; }<br />
&nbsp; <br />
&nbsp; &lt;/script&gt;<br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; This is my DWR DEOM page. &lt;hr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input id=&quot;name&quot;&nbsp; name=&quot;name&quot; value=&quot;&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input&nbsp; type=&quot;button&quot; onclick=&quot;show();&quot;&nbsp; value=&quot; ok &quot;/&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;DemoDiv&quot;&gt;demo&lt;/div&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
***************************************</font></p>
<p>dwr.xml</p>
<p><font face="Arial">-------------------------------------------------</font></p>
<font face="Arial">
<p><font face="Arial">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;dwr&gt;<br />
&lt;!-- AJAX技术具体实现 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;allow&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!-- convert将bean的集合变成javascript中的对象数组--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;convert&nbsp; converter=&quot;bean&quot; match=&quot;com.DemoBean&quot;&gt;&lt;/convert&gt;</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&lt;!-- 业务处理类 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;create creator=&quot;new&quot; javascript=&quot;DWRExample&quot; class=&quot;com.DWRExample&quot; scope=&quot;session&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;include method=&quot;getList&quot;/&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;include method=&quot;checkUser&quot;/&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/create&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; &lt;/allow&gt;<br />
&lt;/dwr&gt;<br />
</font></p>
<p><font face="Arial"></font></p>
<p><font face="Arial">********************************</font></p>
<p><font face="Arial">web.xml</font></p>
<p><font face="Arial">----------------------------------------</font></p>
<font face="Arial">
<p><font face="Arial">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;web-app version=&quot;2.4&quot; <br />
&nbsp;xmlns=&quot;http://java.sun.com/xml/ns/j2ee&quot; <br />
&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; <br />
&nbsp;xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/j2ee <br />
&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;&gt;<br />
&nbsp;&lt;!-- DWR2.0&nbsp; --&gt;<br />
&nbsp;&nbsp; &lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;dwrInvoker&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;classes&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param-value&gt;java.lang.Object&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;10&lt;/load-on-startup&gt;<br />
&nbsp; &lt;/servlet&gt;</font></p>
<p><font face="Arial">&nbsp; &lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;dwrInvoker&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<br />
&nbsp; &lt;/servlet-mapping&gt;</font></p>
<font face="Arial">
<p><br />
&lt;/web-app&gt;<br />
</p>
<p>***************************************]</p>
<p>DWRExample .java</p>
<p>-------------------------------------------------</p>
<p><font face="Arial">package com;</font></p>
<p><font face="Arial">import java.io.Serializable;<br />
import java.util.ArrayList;<br />
import java.util.List;</font></p>
<p><font face="Arial">public class DWRExample implements Serializable {</font></p>
<p><font face="Arial">&nbsp;public List getList()<br />
&nbsp;{<br />
&nbsp;&nbsp;List list=new ArrayList();<br />
&nbsp;&nbsp;DemoBean db=null;<br />
&nbsp;&nbsp;for(int i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;db=new DemoBean();<br />
&nbsp;&nbsp;&nbsp;db.setAge(22+i);<br />
&nbsp;&nbsp;&nbsp;db.setName(&quot;ddh&quot;+i);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;list.add(db);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;return list;<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public boolean checkUser(String name)<br />
&nbsp;{<br />
&nbsp;&nbsp;if(&quot;xy&quot;.equals(name))<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;}else<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
</font></p>
<p>***********************************</p>
<p>DemoBean .java</p>
<p>---------------------------------------------</p>
<p><font face="Arial">package com;</font></p>
<p><font face="Arial">import java.io.Serializable;</font></p>
<p><font face="Arial">public class DemoBean implements Serializable {</font></p>
<p><font face="Arial">&nbsp;<br />
&nbsp;private String name;<br />
&nbsp;private int age;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;public int getAge() {<br />
&nbsp;&nbsp;return age;<br />
&nbsp;}<br />
&nbsp;public void setAge(int age) {<br />
&nbsp;&nbsp;this.age = age;<br />
&nbsp;}<br />
&nbsp;public String getName() {<br />
&nbsp;&nbsp;return name;<br />
&nbsp;}<br />
&nbsp;public void setName(String name) {<br />
&nbsp;&nbsp;this.name = name;<br />
&nbsp;}<br />
&nbsp;<br />
}<br />
</font><font face="Arial"></font></p>
<p><font face="Arial">以上例子仅供参考，谢谢</font></p>
</font></font></font>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/139319#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 Nov 2007 20:52:58 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/139319</link>
        <guid>http://ddh9504.javaeye.com/blog/139319</guid>
      </item>
      <item>
        <title>一个关于Velocity的例子</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/139315" style="color:red;">http://ddh9504.javaeye.com/blog/139315</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>自己做的一个关于velocity的例子。</p>
<p>&nbsp;</p>
<p>index.vm</p>
<p>---------------------------------</p>
<font face="Arial"><font face="Arial">&nbsp;&nbsp;&nbsp; <font face="Arial">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Velocity Demo&lt;/title&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;meta name=&quot;keywords&quot; content=&quot;velocity,模板&quot;&gt;<br />
&nbsp;&lt;/head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;body &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #set($name1=&quot;first!&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello, $name1&nbsp; &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello, $name2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello, $name3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello, $name3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;hr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border='1' width='200' &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; yy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #foreach ($iii in $theList)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td bgcolor=&quot;#eeeeee&quot;&gt;$iii&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
</font><br />
<br />
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊</font></font>
<p>&nbsp;</p>
<p><font face="Arial">MyVelocityServlet.java</font></p>
<p><font face="Arial"><font face="Arial">-----------------------------------------------------------------------</font></font></p>
<font face="Arial"><font face="Arial">
<p><font face="Arial">package com.velocity;</font></p>
<p><font face="Arial">import java.io.IOException;<br />
import java.io.FileNotFoundException;<br />
import java.io.StringWriter;<br />
import java.io.UnsupportedEncodingException;<br />
import java.util.Properties;<br />
import java.util.Vector;</font></p>
<p><font face="Arial">import javax.servlet.ServletConfig;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</font></p>
<p><font face="Arial">import org.apache.velocity.Template;<br />
import org.apache.velocity.context.Context;<br />
import org.apache.velocity.servlet.VelocityServlet;<br />
import org.apache.velocity.app.Velocity;<br />
import org.apache.velocity.app.VelocityEngine;</font></p>
<p><font face="Arial">import org.apache.velocity.VelocityContext;</font></p>
<p><font face="Arial">@SuppressWarnings(&quot;deprecation&quot;)<br />
public class MyVelocityServlet extends VelocityServlet {</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp; protected Properties loadConfiguration(ServletConfig config)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws IOException, FileNotFoundException {</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VelocityEngine engine = new VelocityEngine();</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Properties p = new Properties();</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path = config.getServletContext().getRealPath(&quot;/&quot;);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (path == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = &quot;/&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.setProperty(&quot;runtime.log&quot;, path + &quot;velocity.log&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; engine.init(p); // 载入模板的路径path ,即上下文路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return p;<br />
&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp; public Template handleRequest(HttpServletRequest request,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletResponse response, Context ctx) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; &nbsp;try {<br />
&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(&quot;UTF8&quot;);<br />
&nbsp;&nbsp;} catch (UnsupportedEncodingException e1) {<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;e1.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; &nbsp;response.setCharacterEncoding(&quot;UTF8&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Template template = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Template template2 = null;</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 主要代码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Velocity.init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // VelocityContext context = new VelocityContext();</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String p1 = &quot;JAVA&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String p2 = &quot;C++&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String p3 = &quot;Ruby&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String p4 = &quot;D&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector<string></string> personList = new Vector<string></string>();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; personList.addElement(p1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; personList.addElement(p2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; personList.addElement(p3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; personList.addElement(p4);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 将模板数据name, list 放置到上下文环境 context 中去<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ctx.put(&quot;name2&quot;, &quot; 这里是在后台赋值! &quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ctx.put(&quot;name3&quot;, &quot; 小齐! &quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ctx.put(&quot;theList&quot;, personList);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; template = Velocity.getTemplate(&quot;/index.vm&quot;);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 以下一段代码主要是获得模板的HTML内容 在后台显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; template2 = Velocity.getTemplate(&quot;/index.vm&quot;);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VelocityContext context = new VelocityContext();</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.put(&quot;name2&quot;, &quot;这里在后台第二次赋值！&quot;);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringWriter writer = new StringWriter();</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; template2.merge(context, writer);</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(writer.toString());</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return template;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</font></p>
<p><font face="Arial">***********************************</font></p>
<p><font face="Arial">本例子是参照网上搜集的资料而形成的，现提出来供大家参考，谢谢</font></p>
</font></font>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/139315#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 Nov 2007 20:37:19 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/139315</link>
        <guid>http://ddh9504.javaeye.com/blog/139315</guid>
      </item>
      <item>
        <title>一个FCKeditor例子（on SWF）</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/135615" style="color:red;">http://ddh9504.javaeye.com/blog/135615</a>&nbsp;
          发表时间: 2007年10月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          下面是一个关于FCKeditor的例子，望各位多提宝贵意见，谢谢<br /><br />注：对于这个例子我只剪切了部分的主要的代码，并且这个工程是基于SWF之上的一个应用实例，以前有一种做法就是直接在IFRAME调用FCKeditor页面即可，但有些强大的功能就会受限，比如：上传的轷片存不到服务器端等等。所以现在换了另一种方式来解决这个问题<br /><br />对于FCKeditor的JS和页面我就不贴出来了，只贴一些相关配置，并添上附件供参考，谢谢!<br /><br />web.xml<br />--------------------------------------------<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"<br />	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"<br />	version="2.4"><br />	<br />  	<br />  	<br />  	  &lt;!-- FCKeditor configuration begin  --><br />  <br />  &lt;servlet><br />		&lt;servlet-name>Connector&lt;/servlet-name><br />		&lt;servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet&lt;/servlet-class><br />		&lt;init-param><br />			&lt;param-name>baseDir&lt;/param-name><br />			&lt;param-value>/UserFiles/&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>debug&lt;/param-name><br />			&lt;param-value>true&lt;/param-value><br />		&lt;/init-param><br />		&lt;load-on-startup>1&lt;/load-on-startup><br />	&lt;/servlet><br /><br />	&lt;servlet><br />		&lt;servlet-name>SimpleUploader&lt;/servlet-name><br />		&lt;servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet&lt;/servlet-class><br />		&lt;init-param><br />			&lt;param-name>baseDir&lt;/param-name><br />			&lt;param-value>/UserFiles/&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>debug&lt;/param-name><br />			&lt;param-value>true&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>enabled&lt;/param-name><br />			&lt;param-value>false&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>AllowedExtensionsFile&lt;/param-name><br />			&lt;param-value>&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>DeniedExtensionsFile&lt;/param-name><br />			&lt;param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>AllowedExtensionsImage&lt;/param-name><br />			&lt;param-value>jpg|gif|jpeg|png|bmp&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>DeniedExtensionsImage&lt;/param-name><br />			&lt;param-value>&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>AllowedExtensionsFlash&lt;/param-name><br />			&lt;param-value>swf|fla&lt;/param-value><br />		&lt;/init-param><br />		&lt;init-param><br />			&lt;param-name>DeniedExtensionsFlash&lt;/param-name><br />			&lt;param-value>&lt;/param-value><br />		&lt;/init-param><br />		&lt;load-on-startup>1&lt;/load-on-startup><br />	&lt;/servlet><br /><br />  &lt;servlet-mapping><br />    &lt;servlet-name>Connector&lt;/servlet-name><br />    &lt;url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector&lt;/url-pattern><br />  &lt;/servlet-mapping><br />  <br />  &lt;servlet-mapping><br />    &lt;servlet-name>SimpleUploader&lt;/servlet-name><br />    &lt;url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader&lt;/url-pattern><br />  &lt;/servlet-mapping>  <br />  <br />  &lt;!-- FCKeditor configuration end --><br />  	<br />  	<br />&lt;/web-app><br />********************************************<br /><br /><br />CateNewsEditAction.java<br /><br />---------------------------------------------<br /><br />package com.ihomey.aca.action.manage.food;<br /><br />import java.io.File;<br />import java.util.Date;<br /><br />import org.coreframework.annotation.Param;<br />import org.coreframework.web.upload.DefaultFileSaver;<br />import org.coreframework.web.upload.FileSave;<br />import org.coreframework.web.upload.FileUpload;<br />import org.coreframework.web.upload.UploadUtils;<br />import org.coreframework.web.upload.Uploader;<br />import org.coreframework.webflow.ActionUtils;<br />import org.coreframework.webflow.Form;<br />import org.coreframework.webflow.action.EditEntityFormAction;<br />import org.springframework.validation.Errors;<br />import org.springframework.web.multipart.MultipartFile;<br />import org.springframework.webflow.Event;<br />import org.springframework.webflow.RequestContext;<br />import com.ihomey.aca.action.manage.it.EditBrandHistoryAction;<br />import com.ihomey.aca.entity.CateNews;<br />import com.ihomey.aca.service.CateNewsMgr;<br /><br />/**<br /> * &lt;p><br /> * Title:添加与修改<br /> * &lt;/p><br /> * <br /> * &lt;p><br /> * Description: BrandHistory 添加与修改操作<br /> * &lt;/p><br /> * <br /> * &lt;p><br /> * Copyright: Copyright (c) 2007 10<br /> * &lt;/p><br /> * <br /> * &lt;p><br /> * Company: DDH<br /> * &lt;/p><br /> * <br /> * @author Winner<br /> * @version 2.0<br /> */<br />/*<br /> * 美食美事<br /> */<br />@Form(objectClass = CateNews.class)<br />public class CateNewsEditAction extends EditEntityFormAction {<br /><br />	private CateNewsMgr cateNewsMgr;<br /><br />	public CateNewsMgr getCateNewsMgr() {<br />		return cateNewsMgr;<br />	}<br /><br />	public void setCateNewsMgr(CateNewsMgr cateNewsMgr) {<br />		this.cateNewsMgr = cateNewsMgr;<br />	}<br /><br />	/**<br />	 * 装载FORM,及初始化值操作<br />	 * <br />	 * @param context<br />	 *            RequestContext<br />	 * @return Event<br />	 * @throws Exception<br />	 */<br />	public Event setupForm(RequestContext context) throws Exception {<br />		super.setupForm(context);<br />		return success();<br />	}<br /><br />	/**<br />	 * 保存操作事件<br />	 * <br />	 * @param context<br />	 *            RequestContext<br />	 * @return Event<br />	 * @throws Exception<br />	 */<br />	public Event save(RequestContext context) throws Exception {<br />		CateNews cn = (CateNews) getFormObject(context);<br /><br />		Errors errors = getFormErrors(context);<br />		if (cn != null) {			<br />				try {<br />					EditBrandHistoryAction ebha = new EditBrandHistoryAction();<br />					String content = ebha.reHtml(<br />							context.getRequestParameters().get("content"), 5000).replace("'",<br />							"''");<br />					cn.setInfoContent(content);<br />					cn.setPublishTime(new Date());<br />					<br />					cateNewsMgr.saveCateNews(cn);<br />					return success();<br />				} catch (Exception e) {<br />					<br />					return error();<br />				}			<br />		}		<br />	}<br />	<br />}<br /><br /><br />********************************************<br /><br />CateNewsEdit.jsp<br />--------------------------------------------<br />&lt;%@page contentType="text/html; charset=UTF-8"%><br />&lt;%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><br />&lt;html><br />&lt;head><br />&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />&lt;link rel="stylesheet" type="text/css" href="css/brand_style.css"><br />&lt;title>美食美事&lt;/title><br /><br />&lt;script language="javascript" src="/fck/FCKeditor/fckeditor.js">&lt;/script><br /><br />&lt;/head><br /><br />&lt;body style="margin: 50px 20px 20px 20px;"><br /><br />&lt;spring:bind path="cateNews.*"><br />	&lt;c:forEach var="error" items="${status.errorMessages}"><br />		&lt;B>&lt;FONT color=RED> &lt;br><br />		&lt;c:out value="${error}" /> &lt;/FONT>&lt;/B><br />	&lt;/c:forEach><br />&lt;/spring:bind><br />&lt;div class="title border">&lt;c:if<br />	test="${cateNews.cateNewsId==null}"><br />	&lt;c:out value="添加美事">&lt;/c:out><br />&lt;/c:if> &lt;c:if test="${cateNews.cateNewsId!=null}"><br />	&lt;c:out value="更新美事">&lt;/c:out><br />&lt;/c:if>&lt;/div><br />&lt;form action="food-mgr.htm" enctype="multipart/form-data" method="post"><br />&lt;input type="hidden" name="_flowExecutionKey"<br />	value="${flowExecutionKey}"> &lt;input type="hidden"<br />	name="_eventId" value="submit"> &lt;c:if<br />	test="${cateNews.cateNewsId!=null}"><br />	&lt;input type="hidden" name="cateNewsId"<br />		value="${cateNews.cateNewsId}"><br />&lt;/c:if><br />&lt;table width="100%" border="0" cellpadding="0" cellspacing="1"<br />	bgcolor="#FFFFFF"><br />	&lt;tr><br />		&lt;td class="table" width="160" bgcolor="#d6dff7" valign="top"<br />			align="right">美事标题&lt;/td><br />		&lt;td class="table" valign="top">&lt;input name="infoCaption" type="text"<br />			size="30" value="${cateNews.infoCaption}" class="input1" />&lt;/td><br />	&lt;/tr><br />	<br />	&lt;tr><br />		&lt;td class="table" height="500" bgcolor="#d6dff7" align="right"<br />			valign="top">美事内容&lt;/td><br />		&lt;td class="table" valign="top"><br />			<br />			<br />			&lt;textarea name="content" id="content"<br />			style="display: none">${cateNews.infoContent}&lt;/textarea> <br />			<br />		&lt;!--这个是用以前方法实现的，但不能直接把图片上传到服务器，所以这种方式不可取<br />			 &lt;iframe<br />			id="EditorDefault"<br />			src="fck/FCKeditor/editor/fckeditor.html?InstanceName=Body&Toolbar=Default"<br />			width="100%" height="300" frameborder="no" scrolling="no">&lt;/iframe><br />			--><br />			&lt;/td><br />	&lt;/tr><br />	&lt;tr><br />		&lt;td height="80" colspan="2" align="center" bgcolor="#E8F1FF"><br />		&lt;input type="submit" value="提交" width="60" height="27" border="0">&nbsp;&nbsp;&nbsp;&nbsp;<br />		&lt;input type="button" value="取消" onClick="javascript:history.back();"><br />		&lt;/td><br />	&lt;/tr><br />&lt;/table><br />&lt;/form><br /><br />window.onload = function()<br />{<br />	// Automatically calculates the editor base path based on the _samples directory.<br />	// This is usefull only for these samples. A real application should use something like this:<br />	// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.<br />	<br />	var language = '&lt;bean:write name="language"/>';<br />	language = language.toLowerCase();<br /><br />	var sBasePath = '../../FCKeditor/';<br />	var oFCKeditor = new FCKeditor( 'content' ) ;<br />	oFCKeditor.BasePath	= sBasePath ;<br />	oFCKeditor.ToolbarSet = "Default";<br />	oFCKeditor.Height = "500";<br />	oFCKeditor.Width = "100%";<br />	oFCKeditor.SkinPath = "../../FCKeditor/editor/skins/silver/";<br />	<br />	if(language == 'zh_cn'){<br />		oFCKeditor.Config["AutoDetectLanguage"] = "false";<br />		oFCKeditor.Config["DefaultLanguage"] = "zh-cn";<br />	}else{<br />		oFCKeditor.Config["AutoDetectLanguage"] = "false";<br />oFCKeditor.Config["DefaultLanguage"] = "en";<br />	}<br />	<br />	oFCKeditor.ReplaceTextarea() ;<br />	var oFCKeditor_en = new FCKeditor( 'content_en_us' ) ;<br />	oFCKeditor_en.BasePath	= sBasePath ;<br />	oFCKeditor_en.ToolbarSet = "Default";<br />	oFCKeditor_en.Height = "500";<br />	oFCKeditor_en.Width = "100%";<br />	oFCKeditor_en.SkinPath = "../../FCKeditor/editor/skins/silver/";<br />	<br />	if(language == 'zh_cn'){<br />		oFCKeditor_en.Config["AutoDetectLanguage"] = "false";<br />		oFCKeditor_en.Config["DefaultLanguage"] = "zh-cn";<br />	}else{<br />		oFCKeditor_en.Config["AutoDetectLanguage"] = "false";<br />		oFCKeditor_en.Config["DefaultLanguage"] = "en";<br />	}<br />	<br />	oFCKeditor_en.ReplaceTextarea() ;<br />}<br /><br /><br />&lt;/body><br />&lt;/html><br /><br />************************************************
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/135615#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 26 Oct 2007 09:24:02 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/135615</link>
        <guid>http://ddh9504.javaeye.com/blog/135615</guid>
      </item>
      <item>
        <title>16条处世恒言（不得不笑）</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/131422" style="color:red;">http://ddh9504.javaeye.com/blog/131422</a>&nbsp;
          发表时间: 2007年10月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1．如果有钱也是一种错，那我情愿一错再错。 <br /><br />2．娶老婆应是小昭，交朋友应是令狐冲，做男儿最好是乔峰，出来混还得是韦<br /><br />小宝。<br /> <br />3．废话是人际关系的第一句。<br /> <br />4．禽兽尚且有半点怜悯之心，而我一点也没有，所以我不是禽兽。<br /> <br />5．恶人从不搞笑，恶人要抓紧时间作恶。<br /> <br />6．面对敌人的严刑拷打，我就三个字：“我都说！” <br /><br />7．下围棋的人就是喜欢打劫。<br /> <br />8．月有阴晴圆缺，猫有掉线断网，此事古难全。<br /> <br />9．偷一个人的主意是剽窃，偷很多人的主意是研究。<br /> <br />10．我想当皇帝，怕啰嗦；想当官，怕事多；想吃饭，怕刷锅；想揍你一顿，怕<br /><br />惹祸。<br /> <br />11．不是我不小心，而是我故意的。<br /> <br />12．一个人犯错误并不难，难的是一辈子只犯一个错误，从不改正。<br /> <br />13．听君一席话，省我十本书。<br /> <br />14．人皆养子望聪明，我被聪明误一生。<br /> <br />15．人生在世无非是让别人笑笑，偶尔笑笑别人。<br /><br />16．俗话说：你笑，全世界都跟着你笑；你哭，全世界只有你一个人哭。
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/131422#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 12 Oct 2007 17:29:31 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/131422</link>
        <guid>http://ddh9504.javaeye.com/blog/131422</guid>
      </item>
      <item>
        <title>一个jfreechart的例子</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/131390" style="color:red;">http://ddh9504.javaeye.com/blog/131390</a>&nbsp;
          发表时间: 2007年10月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这是一个关于jfreechart的例子，有兴趣的同仁请给点宝贵意见，谢谢
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/131390#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 12 Oct 2007 16:27:41 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/131390</link>
        <guid>http://ddh9504.javaeye.com/blog/131390</guid>
      </item>
      <item>
        <title>一个eXtremeComponents的例子</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/131380" style="color:red;">http://ddh9504.javaeye.com/blog/131380</a>&nbsp;
          发表时间: 2007年10月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          工程中有点小毛病，就是在导出成PDF文件时出现中文乱码的情况，敬请各位指点迷经，谢谢<br /><br /><br />注：<br />三个文件：<br />第一个为工程文件<br />第二、三个为Jar文件。
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/131380#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 12 Oct 2007 15:47:13 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/131380</link>
        <guid>http://ddh9504.javaeye.com/blog/131380</guid>
      </item>
      <item>
        <title>什么是D语言？</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/131371" style="color:red;">http://ddh9504.javaeye.com/blog/131371</a>&nbsp;
          发表时间: 2007年10月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          D 是一种通用的系统和应用编程语言。它是比 C++ 更高级的语言，同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于学习，为编程者提供了很多便利，并且适用各种野心勃勃的编译器优化技术。 <br />D 不是脚本语言，也不是一种解释型语言。它不需要虚拟机、宗教、或者高于一切的哲学。它是给实际的编程者使用的实际的语言，它帮助编程者快速、可靠的完成易于维护、易于理解的代码。<br /><br />D 是数十年来实现多种语言编译器的经验的积累，是用那些语言构造大型工程的尝试的积累。D 从那些语言（主要是 C++ ）那里获得了灵感，并将 使用经验和现实世界中的实用性来驯服它。 <br /><br />为什么是 D ？<br />确实，为什么？有谁需要另一种编程语言？ <br />自从 C 语言被发明以来，软件工业走过了一段很长的路。许多新的概念被加入了 C++ 中，但同时维护了同 C 的向后兼容性，包括兼容了原始设计中的所有的弱点。有很多修正这些弱点的尝试，但是兼容性是最大的困扰。同时，C 和 C++ 都在不断引入新的特性。这些新特性必须被小心的加入到现有的结构中，以免重写旧的代码。最终的结果十分复杂—— C 标准将近 500 页，C++ 标准大概有 750 页！C++ 实现起来既困难又代价高昂，造成的结果就是各种实现之间都有差别，因此很难写出完全可以移植的 C++ 代码。<br /><br />C++ 程序员倾向于使用语言中的孤岛来编程，也就是说，他们倾向于十分精通语言中的某个特性而避免使用其他特性。尽管代码通常在编译器之间是可移植的，但在程序员之间移植就不那么容易了。C++ 的一个长处是它支持很多根本上不同的编程风格——但从长远来看，互相重复和互相冲突的风格会给开发带来妨碍。<br /><br />C++ 在标准库而不是语言核心中实现了可改变大小的数组和字符串拼接等。不在语言核心中实现这些功能造成了几种不太理想的结果。<br /><br />是否能把 C++ 的能力释放、重新设计并重铸到一门简单、正交并实用的语言中呢？ 这种语言是否能做到易于正确实现，并使编译器有能力有效地生成高度优化的代码呢？<br /><br />现代编译器技术已经取得了很大的进步，有些原来用作原始编译技术的补充的语言特性已经可以被忽略了（一个这样的例子是 C 语言中的‘register’关键字，一个更为微妙的例子是 C 中的宏预处理程序）。我们可以依赖现代编译器的优化技术而不是使用语言特性（如同原始的编译器所做的那样）来获得可以接受的代码质量。<br /><br />D的主要目标<br />通过加入已经被证明的能够提高生产力的特性、调整语言特性以避免常见但耗费精力的bug的出现，至少减少软件开发成本10%。 <br />是代码易于在编译器之间、在机器之间、在操作系统之间移植。 <br />支持多种编程范式，也就是至少支持命令式、结构化、面向对象和范型编程范式。 <br />对于熟悉 C 或者 C++ 的人来说，学习曲线要短。 <br />提供必要的低级访问能力。 <br />要使 D 的编译器从根本上易于实现（相对于 C++ 来说）。 <br />要同本机的 C 语言应用程序二进制接口相兼容。 <br />语法要做到上下文无关。 <br />对编写国际化的应用程序提供便利的支持。 <br />同时支持契约式编程和单元测试方法论。 <br />能够构建轻量级的、独立的程序。 <br />从C/C++保留而来的特征<br />粗看上去 D 就像 C 和 C++ 。这样一来学习以及将代码移植到 D 就很容易。从 C/C++ 转向 D 应该很自然。程序员不必从头学起。 <br />使用 D 并不意味着程序员会如 Java 或者 Smalltalk 那样被严格的限制在某一个运行时 vm （虚拟机）上。D 没有虚拟机，编译器直接生成可连接的目标文件。D 如同 C 那样被直接连接到操作系统。通常那些你熟悉的工具如 make 同样适用于 D 的开发。<br /><br />D 将很大程度上保留 C/C++ 的 观感 。它将使用相同的代数语法，绝大多数的相同表达式和语句形式，以及总体的结构。 <br />D 程序既可以采用 C 风格的 函数和数据 范式，也可以采用 C++ 风格的 面向对象 范式，或者它们两者的混合。 <br />编译/链接/调试 的开发模型将会被继承下来，但是把 D 编译成为字节码然后解释执行也不会有任何问题。 <br />异常处理 越来越多的使用经验显示，异常处理是比 C 传统的“出错代码/全局errno变量”模型更为高级的错误处理模型。 <br />运行时类型识别 C++ 部分地实现了这个功能，而 D 更进一步。对运行时类型识别的完全支持将使垃圾收集运行的更好，会使调试器的功能更强，会使对自动持久化的支持更好等等。 <br />D 维持了同 C 调用惯例 的兼容。这样就能够使 D 程序直接访问操作系统的 API 。程序员有关现有 API 和编程范例的知识和经验可以继续在使用 D 时使用而只需付出很少的努力。 <br />运算符重载 D 支持对运算符的重载，这样就可以用用户定义的类型扩展由基本类型构成的类型系统。 <br />模板 模板是实现范型编程的一种手段。其他的手段包括使用宏或者采用协变数据类型。使用宏已经过时了。协变类型很直接，但是低效且缺少类型检查。C++ 模板的问题是它们太复杂，同语言的语法不和谐，还有各种各样的类型转换和重载规则，等等。D 提供了一种简单得多的使用模板的方法。 <br />RAII（资源获得即初始化） RAII 技术是编写可靠软件的重要方法之一。 <br />Down and dirty 编程 D 将保留 down-and-dirty 编程的能力，而不用采用别的语言编写的外部模块。在进行系统编程时，有时需要将一种指针转换成另一种指针，或者使用汇编语言。D 的目标不是避免 down and dirty 编程，而是减少在进行普通程序设计时对它们的需要。 <br />废弃的特征<br />对 C 的源码级兼容性。保留对 C 的源码级兼容的扩展已经有了（C++ 和 Objective-C）。在这方面的进一步工作受制于大量的遗留代码，已经很难对这些代码进行什么重大的改进了。 <br />对 C++ 的链接兼容性。C++ 的运行时对象模型太复杂了——如果要较好的支持它，基本上就是要求 D 编译器变成一个完整的 C++ 编译器了。 <br />C 预处理程序。宏处理是一种扩展语言的简单方法，它可以给语言加入某些语言本不支持的（对于符号调试器不可见的）特征。条件编译、使用 #include 分层的文本、宏、符号连接等，本质上构成了两种难以区分两种语言的融合体，而不是一种语言。更糟的是（或许是最好的），C 预处理程序是一种十分原始的宏语言。是停下来的时候了，看看预处理程序是用来做什么的，并将这些功能直接设计到语言内部。 <br />多重继承。它是一种拥有饱受争议的价值的复杂特征。它很难用一种高效的方式实现，而且在编译器实现它时很容易出现各种 bug 。几乎所有的 MI 的功能都能够通过使用单根继承加接口和聚集的方式实现。而那些只有 MI 才能支持的功能并不能弥补它带来的副作用。 <br />名字空间。当链接独立开发的代码时，可能会发生名字的冲突，名字空间就是解决这个问题的一种尝试。模块的概念更简单并且工作得更好。 <br />标记名字空间。这是 C 的一个糟糕的特征，结构的标记名称位于一个同其它符号不同的符号表中。C++ 试图合并标记名字空间和正常的名字空间，但同时还要维持对遗留 C 代码的向后兼容性。造成的结果是不可打印。 <br />前向声明。C 编译器在语义上只知道什么东西实在词法上位于当前状态之前的。C++ 进行了一点点扩展，类中的成员可以依赖于它之后声明的类成员。D 更进一步，得到了一个合情合理的结论，前向声明根本就没有存在的必要。函数可以按照一种自然的顺序定义，不用再像 C 那样为了避免前向声明而采用常用的从里到外的顺序定义。 <br />包含文件。造成编译器运行缓慢的原因之一是编译每个编译单元时都需要重新解析数量巨大的头文件。包含文件的工作应该采用导入到符号表中的方式来完成。 <br />在堆栈上创建对象实例。在 D 中，所有的类都通过引用来访问。这样就不需要复制构造函数、赋值运算符、复杂的析构语义以及同异常处理中的堆栈展开的相互作用。内存资源由垃圾收集程序负责释放，其他资源通过使用 D 的 RAII 特征释放。 <br />三字节码和双字节码。Unicode 是未来。 <br />预处理程序。现代语言不应该需要文本处理，它们应该只需要符号处理。 <br />非虚成员函数。在 C++ 中，由累得设计者决定一个函数是否应该是虚函数。在子类中重写一个函数而忘记在父类中将其更新为虚函数是一个常见的（并且非常难以发现的）编码错误。将所有成员函数设置为虚函数，并由编译器来判断函数是否被重写、并由此将没有被重写的函数转换为非虚函数的做法更为可靠。 <br />任意长度的位字段。位字段是一种复杂、低效并且很少用到的特征。 <br />支持16位计算机。D 从不考虑混合使用远/近指针和其它所有用于声称好的16位代码的机制。D 语言的设计假设目标机器至少拥有32位的平坦内存空间。D 将能够被毫无困难的移植到64位架构上。 <br />对编译遍数的互相依赖。在 C++ 中，需要一个符号表和各种的预处理程序命令才能成功的解析一个源文件。这样就使预解析 C++ 源码变得不可能，并且使编写代码分析程序和语法制导的编辑器的过程十分难以正确实现。 <br />编译器的复杂性。通过降低实现的复杂度，这就更有可能出现多个正确的实现。 <br />‘.’和‘->’之间的区别。这种区别其实很没有必要。‘.’运算符完全可以起到‘->’所起的指针解引用的作用。 <br />D 适合于？<br />经常使用 lint 或者类似的代码分析工具以期在编译之前减少 bug 的程序员。 <br />将编译器的警告级别调到最高的人和那些告诉编译器把警告作为错误的人。 <br />不得不依靠编程风格规范来避免常见的 C bug 的编程部门经理们。 <br />认定 C++ 面向对象编程所允诺的功能由于 C++ 太复杂而不能达到的人。 <br />沉溺于 C++ 强大的表达力但是被显式内存管理和查找指针 bug 折磨得精疲力尽的人。 <br />需要内建的测试和验证机制的项目。 <br />开发百万行规模的程序的团队。 <br />认为语言应当提供足够的特征以避免显式处理指针的程序员。 <br />编写数值运算程序的程序员。D 拥有众多直接支持数值计算的特征，例如直接提供了复数类型和拥有确定行为的 NaN 和无穷大。（这些都被加进了最新的 C99 标准，但是没有加进 C++ 中。） <br />D 的词法分析程序和解析程序完全互相独立，并且独立于语义分析程序。这意味着易于编写简单的工具来很好地处理 D 源码而不用编写一个完整的编译器。这还意味着源码可以以记号的形式传递个某个需要它的程序。 <br />D 不适合于？<br />现实一点说，没人会把上百万行的 C 或 C++ 程序用 D 重新写一遍，因为 D 不直接兼容 C/C++ 源代码，D 并不适合于遗留程序。（但是，D 对遗留的 C API 提供了很好的支持。） <br />非常小的程序——脚本或解释性语言如 Python、DMDScript 或者 Perl 更适合于这种情况。 <br />作为第一门程序设计语言—— Basic 或者 Java 更适合于初学者。对于中级到高级的程序员来说，D 是他们优秀的第二门语言。 <br />语言纯粹主义者。D 是一门实用的语言，它的每个特征都是为这个目的服务的，D 并没有想成为一门“完美”的语言。例如，D 拥有可以基本上避免在日常任务中使用指针的结构和语义。但是 D 仍然支持指针，因为有时我们需要打破这条规则。类似地，D 保留了类型转换，因为有时我们需要重写类型系统。 <br /><br />--------------------------------------------------------------------------------<br /><br />D 的主要特征<br />本节列出了一些更有趣的 D 的特征。 <br />面向对象编程<br />类<br />D 的面向对象天性来自于类。采用的继承模型时单根继承加接口。Object 类为与继承体系的最顶端，所以所有的类都实现了一个通用的功能集合。类通过引用的方式实例化，所以不需要用于在异常后进行清理工作的复杂代码。 <br />运算符重载<br />类可以通过重载现有的运算符扩展类型系统来支持新类型。例如创建一个 bignumber class ，然后重载 +、-、* 和 / 运算符，这样大数类就可以使用普通的代数运算语法了。 <br />生产力<br />模块<br />源文件同模块是一一对应的。D 不再“包含”带有声明的文件的文本，而是“导入”该模块。不用担心多次导入一个模块，也不用再把头文件用 #ifndef/#endif 或者 #pragma once 包起来了。 <br />声明 vs 定义<br />C++ 的函数和类通常需要声明两次——声明位于 .h 头文件中，定义位于 .c 源文件中。这个过程易于出错而且冗长繁琐。显然，应该只需要程序员编写一次，而由编译器提取出声明信息并将它导入到符号表中。这正是 D 所做的。 <br />示例：<br /><br />  class ABC    {           int func() { return 7; }          static int z = 7;     }       int q;       <br />不再需要单独定义成员函数、静态成员、外部声明之类的，也不需要像这样烦人的语法： <br />       int ABC::func() { return 7; }     int ABC::z = 7;      extern int q;        <br />注记：当然，在 C++ 中，琐碎的函数如 { return 7; } 也可以直接写在声明处，但是复杂的函数就不行了（uframer：虽然从语法上说依然是可以的，但会违反 C++ 接口和实现分离的原则。）。另外，如果有前向引用的话，就必须保证已经声明了被引用的那个函数一个原型。下面的代码在 C++ 中是不合法的： <br />       class Foo    {           int foo(Bar *c) { return c->bar; } };      class Bar    {         public:        int bar() { return 3; }       };      <br />但是等价的 D 代码就可以正常工作： <br />    class Foo    {           int foo(Bar c) { return c.bar; }      }       class Bar       {           int bar() { return 3; }       }       <br />D 函数是否被在线化取决于优化程序的设置。 <br /><br /><br /><br />----------------------------------------------------------------<br />附件有一个关于D语言的PDF文档，希望能给大家带来方便，谢谢
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/131371#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 12 Oct 2007 15:20:45 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/131371</link>
        <guid>http://ddh9504.javaeye.com/blog/131371</guid>
      </item>
      <item>
        <title>程序员需要管得太死吗？</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/130273" style="color:red;">http://ddh9504.javaeye.com/blog/130273</a>&nbsp;
          发表时间: 2007年10月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          按理说程序员这一职业应该是属于自由类型的，管理上的死板务必影响程序员的积极性！！！<br />笔者认为公司有公司的员工管理制度，这固然很好，但这种硬性的制度并不适应我们做程序员的这些人：<br />    对于我们程序员像那些朝九晚五的工作并不一定适应，有时思路最清晰的时间恰恰在晚上，做为程序员的你有没有这种感觉呢？<br />    对于工作考核细化到每一天，每一项任务，并且制度了N多的条条框框，搞得程序员不能安心工作，而每天都围着这些框框转悠，实在是郁闷......<br /><br />    我暂时就想到了这里，希望各位同仁发表一下自己的高见，谈谈您的想法，谢谢！
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/130273#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 09 Oct 2007 18:02:15 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/130273</link>
        <guid>http://ddh9504.javaeye.com/blog/130273</guid>
      </item>
      <item>
        <title>真正的用window.open()代替window.showModalDialog()</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/123995" style="color:red;">http://ddh9504.javaeye.com/blog/123995</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>模式窗口太过于局限性，所以我研究了一个完全可以用<font face="Arial">window.open()代替window.showModalDialog()的方法，其资料贴在了下面：</font></p>
<p>&nbsp;</p>
<p>有两个页面，一个是调用页面---main.html，一个是被调用页面---modalWindow.html</p>
<p>main.html</p>
<p>--------------------------------------------------------------------------------------------------------------------------------------------</p>
<p><font face="Arial"><a href="#" onclick="abc();">click here</a></font></p>
<font face="Arial">
<p><br />
&nbsp;<script><br />
  <br />
 newWin=null;<br />
  <br />
function abc()<br />
{<br />
newWin =window.open('modalWindow.html','newWin','height=200,width=400,top=200,left=200,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no');<br />
 <br />
  <br />
}</p>
<p> </p>
<p>window.onfocus=function (){  </p>
<p> if(newWin){<br />
  if(!newWin.closed)<br />
   newWin.focus();<br />
  <br />
 } <br />
 <br />
}; </p>
<p>window.document.onfocus=function (){  </p>
<p><br />
 if(newWin){<br />
  if(!newWin.closed)<br />
 newWin.focus();<br />
  <br />
 } <br />
 <br />
}; </p>
<p> </p>
<p>window.document.onclick=function (){  </p>
<p><br />
 if(newWin){<br />
  if(!newWin.closed)<br />
 newWin.focus();<br />
  <br />
 } <br />
 <br />
}; </p>
<p>window.document.ondblclick=function (){  </p>
<p><br />
 if(newWin){<br />
  if(!newWin.closed)<br />
 newWin.focus();<br />
  <br />
 } <br />
 <br />
}; </p>
<p></script></p>
<p>&nbsp;</p>
<p>----------------------------------------------------------------------------------------------------------------------------------</p>
<p>modalWindow.html</p>
<p>------------------------------------------------------------------------------------------------------------------------------------</p>
<p><font face="Arial">sub window!!!!</font></p>
<p><font face="Arial"><br />
<br />
</font>
<p>&nbsp;</p>
<p>在这个页面modalWindow.html中的方法可以调用父窗口的方法</p>
<p>其用法是 opener.functionName(param);</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</p>
<hr />
</font>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/123995#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 11:52:52 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/123995</link>
        <guid>http://ddh9504.javaeye.com/blog/123995</guid>
      </item>
      <item>
        <title>JS(javascript) 之 Array对象</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/123987" style="color:red;">http://ddh9504.javaeye.com/blog/123987</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h1 class="block_title"><a name="baidusnap0"></a><a name="baidusnap1"></a><a href="http://www.cnblogs.com/xdotnet/archive/2007/04/10/javascript_object_array.html" id="viewpost1_TitleUrl"><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">JS(javascript) </strong>之 <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>对象</a></h1>
<div class="postcontent"><span style="FONT-SIZE: 10pt">&nbsp; 对于我们做web应用来说，JS主得由为重要，下面我们一起交流一下JS对象--<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>数组，希望大家多提宝贵意见，谢谢:</span></div>
<div class="postcontent"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; 首先我们来看看它的定义：<br />
</span></div>
<div class="postcontent">
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,0,0)">&nbsp; var arrayObj&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>()<br />
&nbsp; var arrayObj&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>([size])<br />
&nbsp; var arrayObj&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>([element0[,&nbsp;element1[,&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif" alt="" />[,&nbsp;elementN]]]])</span></div>
</div>
<div class="postcontent"><br />
&nbsp; 其中：arrayObj是赋值为 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象的变量名。 <br />
&nbsp; &nbsp; &nbsp; &nbsp; size由于数组的下标是从零开始，创建的元素的下标将从零到 <em>size</em> -1。 <br />
&nbsp; &nbsp; &nbsp; &nbsp;<em> element0,...,elementN这将创建具有 <em>n</em> + 1 个元素的长度为 n + 1 的数组。使用该语法时必须有一个以上元素。 </em></div>
<div><dl><dt></dt></dl></div>
<p class="post">&nbsp; 如果只向 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 的构造函数传递了一个参数，而该参数是数字，则它必须是无符号 32 位整数（大约 40 亿）。该值成为数组的大小。如果该值为数值，但小于 0 或不为整数，发生运行时错误。</p>
<p class="post">&nbsp; 如果传递给 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 构造函数的是单个值并且不是数值，设置 <strong>length</strong> 属性为 1，而且唯一的元素值成为单个的传入的参数。</p>
<p class="post">&nbsp; 由于<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">JS</strong>数组为解析数组，也就是尽管可以分配多个元素给一个数组，但实际上只有包含数据的元素才存在。这减少了数组使用的内存数量。</p>
<div class="post">&nbsp; <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>对象具有三个内置属性：constructor,length,prototype我会在特地写一篇关于constructor, prototype,arguments等对象属性的文章，在这里就不在多说了。下面我们主要看看<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>内置的一些方法，这个对我们很重要，因为会经常用得这个东东。<br />
<br />
&nbsp; <span style="COLOR: red">concat方法</span>：连接两个或多个数组并返回一个新的数组。值得我们注意的是(引用类型)对于从正被连接到新数组的数组中复制的对象参数，复制后仍然指向相同的对象，不论新数组和源数组中哪一个有改变，都将引起另一个的改变； （值类型）对于连接到新数组的数值或字符串，只复制其值，一个数组中值有改变并不影响另一个数组中的值。例子：<br />
</div>
<div class="post">
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,128,128)">&nbsp;1</span>&nbsp;<span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">&nbsp;ConcatArrayDemo(){<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;2</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;a,&nbsp;b,&nbsp;c,&nbsp;d;<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;3</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>(</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">);<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;4</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;b&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">JScript</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">;<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;5</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>(</span><span style="COLOR: rgb(0,0,0)">42</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">VBScript);<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;6</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;d&nbsp;=&nbsp;a.concat(b,&nbsp;c);<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;7</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;//&nbsp;返回数组&nbsp;[1,&nbsp;2,&nbsp;3,&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">JScript</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">,&nbsp;42,&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">VBScript</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">]<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;8</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;return(d);<br />
</span><span style="COLOR: rgb(0,128,128)">&nbsp;9</span>&nbsp;<span style="COLOR: rgb(0,0,0)">}<br />
</span><span style="COLOR: rgb(0,128,128)">10</span>&nbsp;<span style="COLOR: rgb(0,0,0)"></span></div>
</div>
<div class="post">&nbsp; <span style="COLOR: red">join方法</span>：将数组中的项，按特定的分隔符转化为字符串并返回，默认分隔符为逗号，例子：<br />
</div>
<div class="post">
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,128,128)">1</span>&nbsp;<span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">&nbsp;JoinDemo(){<br />
</span><span style="COLOR: rgb(0,128,128)">2</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;a,&nbsp;b;<br />
</span><span style="COLOR: rgb(0,128,128)">3</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>(</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">4</span><span style="COLOR: rgb(0,0,0)">);<br />
</span><span style="COLOR: rgb(0,128,128)">4</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;b&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;a.join(</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">);<br />
</span><span style="COLOR: rgb(0,128,128)">5</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">返回：&quot;0-1-2-3-4&quot;</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">6</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)">(b);<br />
</span><span style="COLOR: rgb(0,128,128)">7</span>&nbsp;<span style="COLOR: rgb(0,0,0)">}</span></div>
</div>
<div class="post">&nbsp; <span style="COLOR: red">pop方法：</span>移除数组中的最后一个元素，并返回该元素。如果该数组为空则返回undefined。<br />
<br />
&nbsp;<span style="COLOR: red"> push方法：</span>将以新元素出现的顺序添加这些元素<span style="FONT-WEIGHT: bold">，</span>如果参数之一为数组，那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素，请使用 <strong>concat</strong> 方法。 </div>
<p class="post"><strong></strong></p>
<div class="post">&nbsp;&nbsp;<strong style="COLOR: red">reverse </strong><span style="COLOR: red">方法</span>将一个 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象中的元素位置进行反转。在执行过程中，这个方法并不会创建一个新的 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象。如果数组是不连续的，<strong>reverse</strong> 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。 </div>
<p class="post"><strong></strong></p>
<div class="post">
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,128,128)">1</span>&nbsp;<span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">&nbsp;ReverseDemo(){<br />
</span><span style="COLOR: rgb(0,128,128)">2</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;a,&nbsp;l;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;声明变量。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">3</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>(</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">3</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">4</span><span style="COLOR: rgb(0,0,0)">);&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;创建数组并赋值。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">4</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;l&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;a.reverse();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;反转数组的内容。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">5</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">返回：l=[4,3,2,1,0]</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">6</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)">(l);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;返回结果数组。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">7</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">}</span></div>
</div>
<div class="post">&nbsp; <strong style="COLOR: red">shift </strong><span style="COLOR: red">方法</span>可移除数组中的第一个元素并返回该元素。 <br />
&nbsp;<br />
&nbsp;&nbsp;<strong style="COLOR: red">slice</strong><span style="COLOR: red"> 方法</span>返回一个 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象，其中包含了 <em>arrayObj</em> 的指定部分。<strong>slice</strong> 方法一直复制到 <em>end</em> 所指定的元素，但是不包括该元素。如果 <em>start </em>为负，将它作为 <em>length + start</em>处理，此处 <em>length</em> 为数组的长度。如果 <em>end</em> 为负，就将它作为 <em>length</em> + <em>end</em> 处理，此处 <em>length</em> 为数组的长度。如果省略 <em>end</em> ，那么 <strong>slice</strong> 方法将一直复制到 <em>arrayObj</em> 的结尾。如果 <em>end</em> 出现在 <em>start</em> 之前，不复制任何元素到新数组中。例子： </div>
<p class="post"><strong></strong></p>
<div class="post">
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">除了最后一个元素之外，myArray&nbsp;中所有的元素都被复制到&nbsp;newArray&nbsp;中：&nbsp;</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,0,0)"><br />
newArray&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;myArray.slice(</span><span style="COLOR: rgb(0,0,0)">0</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">)<br />
</span></div>
</div>
<div class="post">&nbsp; </div>
<p class="post"><strong>&nbsp; <span style="COLOR: red">sort</span></strong><span style="COLOR: red"> 方法</span>将 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象进行适当的排序；在执行过程中并不会创建新的 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong></strong> 对象。如果为 <em>sortfunction</em> 参数提供了一个函数，那么该函数必须返回下列值之一： </p>
<div>
<ul type="disc">
    <li>负值，如果所传递的第一个参数比第二个参数小。 </li>
    <li>零，如果两个参数相等。 </li>
    <li>正值，如果第一个参数比第二个参数大。 </li>
</ul>
</div>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,128,128)">1</span>&nbsp;<span style="COLOR: rgb(0,0,255)">function</span><span style="COLOR: rgb(0,0,0)">&nbsp;SortDemo(){<br />
</span><span style="COLOR: rgb(0,128,128)">2</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">var</span><span style="COLOR: rgb(0,0,0)">&nbsp;a,&nbsp;l;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;声明变量。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">3</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>(</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">X</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">&nbsp;,</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">y</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">&nbsp;,</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">d</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">Z</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">,&nbsp;</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">v</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">m</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">,</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">r</span><span style="COLOR: rgb(0,0,0)">&quot;</span><span style="COLOR: rgb(0,0,0)">);<br />
</span><span style="COLOR: rgb(0,128,128)">4</span>&nbsp;<span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;l&nbsp;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&nbsp;a.sort();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;排序数组。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">5</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)">(l);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&nbsp;返回排序的数组。</span><span style="COLOR: rgb(0,128,0)"><br />
</span><span style="COLOR: rgb(0,128,128)">6</span>&nbsp;<span style="COLOR: rgb(0,128,0)"></span><span style="COLOR: rgb(0,0,0)">}</span></div>
&nbsp; <strong style="COLOR: red">splice </strong><span style="COLOR: red">方法</span>可以移除从 <em>start</em> 位置开始的指定个数的元素并插入新元素，从而修改 <em>arrayObj</em>。返回值是一个由所移除的元素组成的新 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong> </strong>对象。 格式如下：<br />
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,0,0)">arrayObj.splice(start,&nbsp;deleteCount,&nbsp;[item1[,&nbsp;item2[,&nbsp;.&nbsp;.&nbsp;.&nbsp;[,itemN]]]])</span></div>
&nbsp; <strong style="COLOR: red">toLocaleString</strong><span style="COLOR: red"> 方法</span> 将在Date对象中讲解，一般这个方法只是返回给用户，不作为代码中计算。<br />
<br />
&nbsp;&nbsp;<strong style="COLOR: red">unshift </strong><span style="COLOR: red">方法</span>将这些元素插入到一个数组的开始部分，所以这些元素将以参数序列中的次序出现在数组中。格式如下：
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br><a href="http://www.CodeHighlighter.com/" target="_blank">http://www.CodeHighlighter.com/</a><br><br>--><span style="COLOR: rgb(0,0,0)">arrayObj.unshift([item1[,&nbsp;item2&nbsp;[,&nbsp;.&nbsp;.&nbsp;.&nbsp;[,&nbsp;itemN]]]])<br />
</span></div>
<p><strong></strong></p>
<p>&nbsp;&nbsp;<span style="COLOR: red; BACKGROUND-COLOR: rgb(24,38,255)"></span><span style="COLOR: red">valueOf方法与toString()方法</span> 是数组的元素被转换为字符串，这些字符串由逗号分隔，连接在一起。其操作与 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>.toString</strong> 和 <strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>.join</strong> 方法相同。&nbsp;<br />
<br />
&nbsp;&nbsp;上面这个是普通的Array的介绍，但在这个非常优秀的javascript基础类库（<font face="Arial">prototype.js</font>）中的用法又不一样啦，下面简单讲解一下：</p>
<p><strong>$A = <strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>.from(iterable):</strong>&nbsp;将iterable转化为数组，如果iterable定义了toArray方法，就调用这个方法，否则利用iterable的length属性进行枚举, 如果iterable没有length属性的话就返回空数组[]<br />
&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>对象除了扩展Enumerable对象的方法外，另外扩展了如下的几个方法，<br />
注意以下方法除了clear外都不改变原来数组，而是返回一个新数组：<br />
&nbsp;<strong>clear():</strong> 清除数组，利用arr.length=0 <br />
<strong>first():</strong> 返回第一个元素<br />
&nbsp;<strong>last()：</strong>返回最后一个元素 <br />
<strong>compact():</strong> 去除数组中值为null或undefined的元素 <br />
<strong>flatten():</strong> 将数组扁平化，例如[3,4,[6,7]]变为[3,4,6,7] <strong><br />
without():</strong> 去除指定的元素, 可以指定多个值, 例如[4,56,7,8].without(4,7) 返回[56，8] <br />
<strong>indexOf(object):</strong> 返回指定的元素在数组中的索引，不包含则返回-1 <br />
<strong>reverse(inline)：</strong><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>内置函数reverse的增强，当inline为true时，跟内置的reverse函数效果一样，改变原数组的值，否则不改变原来的值 <br />
<strong>reduce():</strong> 如果数组只有一个元素，则返回这个元素，否则返回数组本身 <br />
<strong>uniq():</strong> 返回没有重复元素的数组 <br />
<strong>clone():</strong> 返回一个跟数组相同的数组，<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">Array</strong>中的toArray方法覆盖了Enumerable中的toArray方法，指向了这个方法<br />
&nbsp;<strong>inspect():</strong> 跟数组的toString方法类似，返回对象的字符串表示，例如[2,3].inspect() 返回 &quot;[2,3]&quot;&nbsp; </p>
<p>致此，已讲解，请大家多担宝贵意见，谢谢！！！</p>
<p>注：上面资料是经过本人搜集整理而成的作品！</p>
<p>其附件是国外一个非常优秀AJAX框架，有兴趣的朋友可以下下来研究一下，谢谢</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/123987#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 11:20:43 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/123987</link>
        <guid>http://ddh9504.javaeye.com/blog/123987</guid>
      </item>
      <item>
        <title>一个兼容的日历</title>
        <author>ddh9504</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ddh9504.javaeye.com">ddh9504</a>&nbsp;
          链接：<a href="http://ddh9504.javaeye.com/blog/123914" style="color:red;">http://ddh9504.javaeye.com/blog/123914</a>&nbsp;
          发表时间: 2007年09月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>我这里找了一个可以兼容各种浏览器的日历，与大家分享，欢迎访问交流，谢谢..............</p>
          <br/>
          <span style="color:red;">
            <a href="http://ddh9504.javaeye.com/blog/123914#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Sep 2007 18:27:20 +0800</pubDate>
        <link>http://ddh9504.javaeye.com/blog/123914</link>
        <guid>http://ddh9504.javaeye.com/blog/123914</guid>
      </item>
  </channel>
</rss>