﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-开源俱乐部-随笔分类-Ajax技术相关</title><link>http://www.blogjava.net/gavinju/category/14325.html</link><description>开源框架</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 01:24:53 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 01:24:53 GMT</pubDate><ttl>60</ttl><item><title>Dwr---example</title><link>http://www.blogjava.net/gavinju/archive/2007/01/21/95188.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Sun, 21 Jan 2007 15:35:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2007/01/21/95188.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/95188.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2007/01/21/95188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/95188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/95188.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">1. 在web.xml文件中注册dwr<br />   &lt;servlet&gt;<br />    &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />    &lt;display-name&gt;DWR Servlet&lt;/display-name&gt;<br />    &lt;description&gt;Direct Web Remoter Servlet&lt;/description&gt;<br />    &lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt;<br />    &lt;init-param&gt;<br />        &lt;param-name&gt;debug&lt;/param-name&gt;<br />        &lt;param-value&gt;true&lt;/param-value&gt;<br />    &lt;/init-param&gt;<br /> &lt;/servlet&gt;<br /> &lt;servlet-mapping&gt;<br />    &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />    &lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<br /> &lt;/servlet-mapping&gt;</font>
		</p>
		<p>
				<font size="2"> &lt;welcome-file-list&gt;<br />    &lt;welcome-file&gt;search.jsp&lt;/welcome-file&gt;<br /> &lt;/welcome-file-list&gt;<br /><br />2.dwr.xml<br /> &lt;dwr&gt;<br />    &lt;allow&gt;&lt;convert convert="bean"  match="dwr.sample.Apartment"/&gt;<br />    &lt;create&gt;<br />           &lt;creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO"&gt;<br />                  &lt;include method="findApartments"/&gt;<br />                  &lt;include method="countApartments"/&gt;<br />           &lt;/creator&gt;<br />    &lt;/create&gt;<br />    &lt;/allow&gt;<br />&lt;/dwr&gt;<br />3.DB<br />CREATE TABLE APARTMENTS (id INTEGER, bedrooms INTEGER, bathrooms INTEGER, price INTEGER, address VARCHAR, city VARCHAR, province VARCHAR);<br />INSERT INTO APARTMENTS VALUES (16001, 1, 1, 850, '123 King St. East', 'Toronto', 'ON');<br />INSERT INTO APARTMENTS VALUES (16002, 2, 1, 1000, '1023 Yonge Ave.', 'Toronto', 'ON');<br />INSERT INTO APARTMENTS VALUES (16003, 2, 2, 1050, '27 Winchester St.', 'Toronto', 'ON');<br />4.Apertment.java<br />普通的javabean<br />5.DBUtils.java<br />   数据库链接类<br />   public class DBUtils {</font>
		</p>
		<p>
				<font size="2"> /*<br />  * Creates the sample data (table and records). <br />  */<br /> public static void setupDatabase(BufferedReader reader) {<br />  Connection c = null;<br />  Statement stmt = null;<br />  try {<br />   c = openConnection();<br />   stmt = c.createStatement();<br />   // reads the file with the SQL statements<br />   String line;<br />   while ((line = reader.readLine()) != null) {<br />    stmt.execute(line);<br />   }<br />   stmt.close();<br />   c.close();<br />  } catch (IOException e) {<br />   e.printStackTrace();<br />  } catch (SQLException e) {<br />   e.printStackTrace();<br />  } finally {<br />   try {<br />    stmt.close();<br />    c.close();<br />   } catch (SQLException e) {<br />    e.printStackTrace();<br />   }<br />  }<br /> }<br /> <br /> /*<br />  * Opens a database connection. <br />  */<br /> public static Connection openConnection() throws SQLException {<br />  Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:dwr-sample", "sa", "");<br />  return c;<br /> }<br /> <br />}<br /><br />6.ContextListener.java<br />   实现了ServletContextListerer接口的类<br />   public class ContextListener implements javax.servlet.ServletContextListener {</font>
		</p>
		<p>
				<font size="2"> /**<br />  * This method is invoked when the Web Application has been removed and is<br />  * no longer able to accept requests.<br />  * @param event<br />  */<br /> public void contextDestroyed(ServletContextEvent event) {<br /> }</font>
		</p>
		<p>
				<font size="2"> /**<br />  * This method is invoked when the Web Application is ready to service requests. <br />  * @param event<br />  */<br /> public void contextInitialized(ServletContextEvent event) {<br />  try {<br />   // load the driver<br />   Class.forName("org.hsqldb.jdbcDriver");<br />   // create the table and add sample data<br />   InputStreamReader in = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("db.sql"));<br />   BufferedReader reader = new BufferedReader(in);<br />   DBUtils.setupDatabase(reader);<br />  } catch (ClassNotFoundException e) {<br />   e.printStackTrace();<br />  }<br />  <br /> }</font>
		</p>
		<p>
				<font size="2">}<br />7.ApartmentDAO.java<br />   业务逻辑层<br />   public class ApartmentDAO {<br /> <br /> /**<br />  * Returns the available apartments based on the search criteria.<br />  * @param bedrooms minimum number of bedrooms<br />  * @param bathrooms minimum number of bathrooms<br />  * @param price maximum price to be paid<br />  * @return<br />  */<br /> public Collection findApartments(int bedrooms, int bathrooms, int price) {<br />  Collection list = new Vector();<br />  String sql = "select * from APARTMENTS" + <br />    createSearchWhereClause(bedrooms, bathrooms, price) + <br />    "order by bedrooms, bathrooms, price";</font>
		</p>
		<p>
				<font size="2">  // define db variables<br />  Connection c = null;<br />  Statement stmt = null;<br />  try {<br />   c = DBUtils.openConnection();<br />   stmt = c.createStatement();<br />   // just run the sql statement<br />   ResultSet rs = stmt.executeQuery(sql);<br />   while(rs.next()) {<br />    Apartment apartment = this.getApartment(rs);<br />    list.add(apartment);<br />   }<br />  } catch (SQLException e) {<br />   e.printStackTrace();<br />  } finally {<br />   try {<br />    stmt.close();<br />    c.close();<br />   } catch (SQLException e) {<br />    e.printStackTrace();<br />   }<br />  }</font>
		</p>
		<p>
				<font size="2">  return list;<br /> }<br /> <br /> /**<br />  * Returns the number of available apartments based on the search criteria.<br />  * @param bedrooms minimum number of bedrooms<br />  * @param bathrooms minimum number of bathrooms<br />  * @param price maximum price to be paid<br />  * @return<br />  */<br /> public int countApartments(int bedrooms, int bathrooms, int price) {<br />  String sql = "select count(*) as total from APARTMENTS" + createSearchWhereClause(bedrooms, bathrooms, price);<br />  int numberApartments = -1;<br />  // define db variables<br />  Connection c = null;<br />  Statement stmt = null;<br />  try {<br />   c = DBUtils.openConnection();<br />   stmt = c.createStatement();<br />   // just run the sql statement<br />   ResultSet rs = stmt.executeQuery(sql);<br />   if (rs.next()) {<br />    numberApartments = rs.getInt("total");<br />   }<br />  } catch (SQLException e) {<br />   e.printStackTrace();<br />  } finally {<br />   try {<br />    stmt.close();<br />    c.close();<br />   } catch (SQLException e) {<br />    e.printStackTrace();<br />   }<br />  }<br />  <br />  return numberApartments;<br /> }<br /> <br /> /**<br />  * Creates a Unit object from the database.<br />  * @param rs<br />  * @return<br />  * @throws SQLException<br />  */<br /> private Apartment getApartment(ResultSet rs) throws SQLException {<br />  Apartment ap = new Apartment();<br />  ap.setId(rs.getInt("id"));<br />  ap.setAddress(rs.getString("address"));<br />  ap.setBedrooms(rs.getInt("bedrooms"));<br />  ap.setBathrooms(rs.getInt("bathrooms"));<br />  ap.setPrice(rs.getInt("price"));<br />  ap.setCity(rs.getString("city"));<br />  ap.setProvince(rs.getString("province"));<br />  return ap;<br /> }<br /> <br /> <br /> /**<br />  * Creates the where clause for the search SQL statement.<br />  * @param bedrooms<br />  * @param bathrooms<br />  * @param price<br />  * @return<br />  */<br /> private String createSearchWhereClause(int bedrooms, int bathrooms, int price) {<br />  String where = " where bedrooms &gt;= " + bedrooms + <br />    " and bathrooms &gt;= " + bathrooms +<br />    " and price &lt; " + price;<br />  return where;<br /> }</font>
		</p>
		<p>
				<font size="2">}<br />8. search.jsp<br />  &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />  &lt;title&gt;DWR Example&lt;/title&gt;</font>
		</p>
		<p>
				<font size="2">   &lt;style type="text/css" media="screen"&gt;<br />       @import url( style.css );<br />   &lt;/style&gt;  <br />  <br />  &lt;script src='dwr/interface/ApartmentDAO.js'&gt;&lt;/script&gt;<br />  &lt;script src='dwr/engine.js'&gt;&lt;/script&gt;<br />  &lt;script src='dwr/util.js'&gt;&lt;/script&gt;<br />  &lt;script&gt;<br />  <br />  function updateTotal() {<br />    $("resultTable").style.display = 'none';<br />    var bedrooms = document.getElementById("bedrooms").value;<br />    var bathrooms = document.getElementById("bathrooms").value;<br />    var price = document.getElementById("price").value;<br />    ApartmentDAO.countApartments(loadTotal, bedrooms, bathrooms, price);<br />  }</font>
		</p>
		<p>
				<font size="2">  function updateResults() {<br />    DWRUtil.removeAllRows("apartmentsbody");<br />    var bedrooms = document.getElementById("bedrooms").value;<br />    var bathrooms = document.getElementById("bathrooms").value;<br />    var price = document.getElementById("price").value;<br />    ApartmentDAO.findApartments(fillTable, bedrooms, bathrooms, price);<br />    $("resultTable").style.display = '';<br />  }<br />  <br />  var getId = function(unit) { return unit.id };<br />  var getAddress = function(unit) { return unit.address };<br />  var getBedrooms = function(unit) { return unit.bedrooms };<br />  var getBathrooms = function(unit) { return unit.bathrooms };<br />  var getPrice = function(unit) { return unit.price };<br />    <br />  function loadTotal(data) {<br />    document.getElementById("totalRecords").innerHTML = data;<br />  }<br />  <br />  function fillTable(apartment) {<br />    DWRUtil.addRows("apartmentsbody", apartment, [ getId, getAddress, getBedrooms, getBathrooms, getPrice ]);<br />  }<br />  <br />&lt;/script&gt;</font>
		</p>
		<p>
				<font size="2">&lt;/head&gt;</font>
		</p>
		<p>
				<font size="2">&lt;body onload="updateTotal();"&gt;</font>
		</p>
		<p>
				<font size="2">&lt;h2&gt;Find an apartment to rent&lt;/h2&gt;</font>
		</p>
		<p>
				<font size="2">&lt;table border="0"&gt;<br />&lt;form name="rentalForm"&gt;<br />  &lt;tr width="400"&gt;<br />   &lt;td width="100"&gt;City&lt;/td&gt;<br />   &lt;td width="300"&gt;Toronto&lt;/td&gt;<br />  &lt;/tr&gt;<br />  &lt;tr&gt;<br />   &lt;td&gt;Beds&lt;/td&gt;<br />   &lt;td&gt;<br />    &lt;select id="bedrooms" onchange="updateTotal()"&gt;<br />     &lt;option value="1"&gt;1 or more&lt;/option&gt;<br />     &lt;option value="2"&gt;2 or more&lt;/option&gt;<br />     &lt;option value="3"&gt;3 or more&lt;/option&gt;<br />     &lt;option value="4"&gt;4 or more&lt;/option&gt;<br />    &lt;/select&gt;<br />   &lt;/td&gt;<br />  &lt;/tr&gt;</font>
		</p>
		<p>
				<font size="2">  &lt;tr&gt;<br />   &lt;td&gt;Baths&lt;/td&gt;<br />   &lt;td&gt;<br />    &lt;select id="bathrooms" onchange="updateTotal()"&gt;<br />     &lt;option value="1"&gt;1 or more&lt;/option&gt;<br />     &lt;option value="2"&gt;2 or more&lt;/option&gt;<br />     &lt;option value="3"&gt;3 or more&lt;/option&gt;<br />     &lt;option value="4"&gt;4 or more&lt;/option&gt;<br />    &lt;/select&gt;<br />   &lt;/td&gt;<br />  &lt;/tr&gt;</font>
		</p>
		<p>
				<font size="2">  &lt;tr&gt;<br />   &lt;td&gt;Price&lt;/td&gt;<br />   &lt;td&gt;<br />    &lt;select id="price" onchange="updateTotal()"&gt;<br />     &lt;option value="800"&gt;under $800&lt;/option&gt;<br />     &lt;option value="1000"&gt;under $1,000&lt;/option&gt;<br />     &lt;option value="1250"&gt;under $1,250&lt;/option&gt;<br />     &lt;option value="1500" selected="selected"&gt;under $1,500&lt;/option&gt;<br />     &lt;option value="1800"&gt;under $1,800&lt;/option&gt;<br />     &lt;option value="2000"&gt;under $2,000&lt;/option&gt;<br />    &lt;/select&gt;<br />   &lt;/td&gt;<br />  &lt;/tr&gt;</font>
		</p>
		<p>
				<font size="2">  &lt;tr&gt;<br />   &lt;td colspan="2"&gt;<br />    &lt;blockquote&gt;<br />     Available apartments: &lt;span id="totalRecords" style="font-weight:bold;"&gt;&lt;/span&gt;<br />    &lt;/blockquote&gt;<br />   &lt;/td&gt;<br />  &lt;/tr&gt;</font>
		</p>
		<p>
				<font size="2">&lt;/form&gt;<br />&lt;/table&gt;</font>
		</p>
		<p>
				<font size="2">&lt;p&gt;&lt;input type="button" value="Show results!" onClick="updateResults();"&gt;&lt;/p&gt;</font>
		</p>
		<p>
				<font size="2">&lt;div id="resultTable"&gt;</font>
		</p>
		<p>
				<font size="2">&lt;h2&gt;Results&lt;/h2&gt;</font>
		</p>
		<p>
				<font size="2"> &lt;table border="1"&gt;<br />  &lt;thead&gt;<br />    &lt;tr&gt;<br />      &lt;th width="40"&gt;Id&lt;/th&gt;<br />      &lt;th width="180"&gt;Address&lt;/th&gt;<br />      &lt;th width="60"&gt;Beds&lt;/th&gt;<br />      &lt;th width="60"&gt;Baths&lt;/th&gt;<br />      &lt;th width="60"&gt;Price&lt;/th&gt;<br />    &lt;/tr&gt;<br />  &lt;/thead&gt;<br />  &lt;tbody id="apartmentsbody"&gt;</font>
		</p>
		<p>
				<font size="2">  &lt;/tbody&gt;<br /> &lt;/table&gt;<br />&lt;/div&gt;</font>
		</p>
		<p>
				<font size="2">&lt;/body&gt;<br />&lt;/html&gt;<br /><br />由于项目需要,需在我们现有的struts、hibernate工程上集成ajax功能.项目组决定使用Dwr.<br />刚开始研究Dwr.觉得真的很不错, 只需很少量的代码,就能在现有的工程上集成ajax技术. 期待Dwr有更辉煌的明天！<br />喜欢Dwr技术的IT界朋友可以与本人联系！望提出好的意见与建议.</font>
		</p>
<img src ="http://www.blogjava.net/gavinju/aggbug/95188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2007-01-21 23:35 <a href="http://www.blogjava.net/gavinju/archive/2007/01/21/95188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dwr</title><link>http://www.blogjava.net/gavinju/archive/2007/01/21/95140.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Sun, 21 Jan 2007 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2007/01/21/95140.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/95140.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2007/01/21/95140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/95140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/95140.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Courier New" size="2">        Ajax，或者说是异步JavaScript和XML，描述了一种使用混合了HTML(或XHTML)和层叠样式表作为表达信息,来创建交互式的Web应用的开发技术;文档对象模型(DOM)，JavaScript,动态地显示和与表达信息进行交互;并且，XMLHttpRequest对象与Web服务器异步地交换和处理数据。</font>
		</p>
		<p>
				<font face="Courier New" size="2">　　因特网上许多例子展示了在一个HTML文件内部使用XMLHttpRequest与服务器端进行交互的必要的步骤。当手工地编写和维护XMLHttpRequest代码时，开发者必须处理许多潜在的问题，特别是类似于跨浏览器的DOM实现的兼容性这样的问题。这将会导致在编码和调试Javascript代码上面花费数不清的时间，这显然对开发者来说很不友好。</font>
		</p>
		<p>
				<font face="Courier New" size="2">　　DWR(直接Web远程控制)项目是在Apache许可下的一个开源的解决方案，它供给那些想要以一种简单的方式使用Ajax和XMLHttpRequest的开发者。它具有一套Javascript功能集，它们把从HTML页面调用应用服务器上的Java对象的方法简化了。它操控不同类型的参数，并同时保持了HTML代码的可读性。<br />一. Util.js<br />      util.js包含一系列的工具函数使用javascript返回的数据来帮助更新Web页面。<br />util.js中有四种基本的页面操作函数:<br />getValue[s];setValue[s]可以和除过tables、lists、images的大部分的html元素交互.<br />getText()可以和选择列表(select lists)交互.<br />编辑tables用addRows()和removeAllRows()方法.编辑列表(选择lists和ul,ol列表)用<br />addOptions()和removeAllOptions().<br />1.${}<br />  ${}函数是一个(javascript)全局变量.<br />  $=document.getElementById<br />  '$'可以通过给定的'ID'取得HTML文档元素.他也可返回一个包含返回元素的数组.<br />2.Generating Lists<br />  DWRUtil.addOptions()描述了下拉列表的实现<br />  var sel = DWRUtil.getValue(id);<br />  DWRUtil.removeAllOptions(id);<br />  DWRUtil.addOptions(id,...);<br />  DWRUtil.setValue(id,sel);<br />  如果想要添加"请选择..."项,可以添加以下项: DWRUtil.addOptions(id,["Please select ..."]);<br />  DWRUtil.addOptions有四种使用模式: <br />  Array: <br />       DWRUtil.addOptions(selectid,array)和用文本和值创建了选择列表.<br />  Array of Objects(using option text = option value):<br />       DWRUtil.addOptions(selectid,data,prop)用数组元素创建了选择列表,选择列表中的值和文本设定为<br />       数组中的每个对象的属性.<br />  Array of objects(with differing option text and value):<br />       DWRUtil.addOptions(selectid,array,valueprop,textprop)<br />  Object:<br />       DWRUtil.addOptions(selectid,map,reverse)<br />  Map of object:<br />       DWRUtil.addOptions(ulid,array)<br />  </font>
		</p>
<img src ="http://www.blogjava.net/gavinju/aggbug/95140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2007-01-21 15:59 <a href="http://www.blogjava.net/gavinju/archive/2007/01/21/95140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>科以人重科亦重，人以科传人可知</title><link>http://www.blogjava.net/gavinju/archive/2006/09/27/72295.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Wed, 27 Sep 2006 06:16:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/09/27/72295.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/72295.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/09/27/72295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/72295.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/72295.html</trackback:ping><description><![CDATA[
		<p>        本人毕业于西安电子科技大学，本科。热爱软件开发，精通JAVA .熟悉Struts,Spring,Hibernate,Jboss,Eclipse等多种开源技术。<br />现主要从事于Oracle相关产品的开发。有着ERP,CRM,MES系统的开发经验，目前正着手于Struts与Ajax技术的集成系统的开发，<br />官方给出的AjaxTags也只是测试版，此技术正处于起步阶段。望对此技术有研究的朋友与我联系，给出指点。<br />真诚结交IT届同仁，共同学习，共同交流。构建和谐社会。<br />QQ: 541638655<br />MSN: <a href="mailto:jucracker@hotmail.com">jucracker@hotmail.com</a><br />Phone: 13817080595</p>
<img src ="http://www.blogjava.net/gavinju/aggbug/72295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-09-27 14:16 <a href="http://www.blogjava.net/gavinju/archive/2006/09/27/72295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>http://ajaxcn.org/space/Ajax/Dojo/Event             -----        Ajax中国</title><link>http://www.blogjava.net/gavinju/archive/2006/08/29/66397.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Tue, 29 Aug 2006 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/08/29/66397.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/66397.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/08/29/66397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/66397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/66397.html</trackback:ping><description><![CDATA[
		<a href="http://ajaxcn.org/space/Ajax/Dojo/Event">
				<strong>
						<font color="#003366">Dojo Event System</font>
				</strong>
		</a>
<img src ="http://www.blogjava.net/gavinju/aggbug/66397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-08-29 13:16 <a href="http://www.blogjava.net/gavinju/archive/2006/08/29/66397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>欢迎热爱Ajax技术的朋友加入本群！28058108</title><link>http://www.blogjava.net/gavinju/archive/2006/08/18/64250.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Fri, 18 Aug 2006 01:07:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/08/18/64250.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/64250.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/08/18/64250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/64250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/64250.html</trackback:ping><description><![CDATA[欢迎热爱Ajax技术的朋友加入本群！28058108<img src ="http://www.blogjava.net/gavinju/aggbug/64250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-08-18 09:07 <a href="http://www.blogjava.net/gavinju/archive/2006/08/18/64250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gwt的可视化开发工具：--- VistaFei </title><link>http://www.blogjava.net/gavinju/archive/2006/08/04/61792.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Fri, 04 Aug 2006 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/08/04/61792.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/61792.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/08/04/61792.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/61792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/61792.html</trackback:ping><description><![CDATA[
		<h2>
				<a id="viewpost1_TitleUrl" href="/peacess/archive/2006/07/26/60162.html">gwt的可视化开发工具：--- VistaFei</a>
		</h2>
		<h2>2006-7-19 发布的gwt的可视化开发工具 ----   VistaFei<br />特点：<br />1，基于eclipse<br />2，可以自由拖放组件<br />3，没有说是否免费<br />4，这个版本对于初学gwt的人很有帮助，但对于真实的应用还不行<br /><br />主页：http://www.wirelexsoft.com/<br />下载地址：http://www.wirelexsoft.com/wforum/viewtopic.php?t=48<br />要注册用户才可以下载</h2>
<img src ="http://www.blogjava.net/gavinju/aggbug/61792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-08-04 16:55 <a href="http://www.blogjava.net/gavinju/archive/2006/08/04/61792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax 框架ZK 2.1.0 RC2 发布</title><link>http://www.blogjava.net/gavinju/archive/2006/08/03/61532.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Thu, 03 Aug 2006 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/08/03/61532.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/61532.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/08/03/61532.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/61532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/61532.html</trackback:ping><description><![CDATA[
		<p>ZK 开发小组31日宣布，发布<a href="http://zk1.sourceforge.net/release/rn-2.1.0-RC2.html">ZK 2.1.0 RC2</a> 版本。</p>
		<p>ZK 是一个基于XUL嵌入AJAX事件驱动的Java 框架，用于丰富用户网络应用程序界面。</p>
		<p>新版本中增加了25个新特性，修补了29个bug，包括directive、import、component、style、event、自定义错误页面等等。(CSDN)</p>
<img src ="http://www.blogjava.net/gavinju/aggbug/61532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-08-03 16:18 <a href="http://www.blogjava.net/gavinju/archive/2006/08/03/61532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Web Toolkit </title><link>http://www.blogjava.net/gavinju/archive/2006/08/01/61248.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Tue, 01 Aug 2006 12:21:00 GMT</pubDate><guid>http://www.blogjava.net/gavinju/archive/2006/08/01/61248.html</guid><wfw:comment>http://www.blogjava.net/gavinju/comments/61248.html</wfw:comment><comments>http://www.blogjava.net/gavinju/archive/2006/08/01/61248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gavinju/comments/commentRss/61248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gavinju/services/trackbacks/61248.html</trackback:ping><description><![CDATA[        Google Web Toolkit 的确不错，虽说开发起来有点费事，不过毕竟是新东西，还不成熟，特别是导入到eclipse工程，<br />费了我很大周折！相信很快会有更完美的版本！<br />拭目以待吧！<br />     <img src ="http://www.blogjava.net/gavinju/aggbug/61248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gavinju/" target="_blank">HandSoft</a> 2006-08-01 20:21 <a href="http://www.blogjava.net/gavinju/archive/2006/08/01/61248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>