ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品毛片,日韩一级视频,亚洲我射av http://www.aygfsteel.com/dyerac/category/13368.htmldyerac 的天天天è“?/description>zh-cn Wed, 25 Jul 2007 14:04:10 GMT Wed, 25 Jul 2007 14:04:10 GMT 60 Google Ajax Search api 以åŠ(qi¨¢ng) web api 的设计和架构? http://www.aygfsteel.com/dyerac/archive/2007/07/25/132362.htmldyerac in java... dyerac in java... Wed, 25 Jul 2007 09:52:00 GMT http://www.aygfsteel.com/dyerac/archive/2007/07/25/132362.html http://www.aygfsteel.com/dyerac/comments/132362.html http://www.aygfsteel.com/dyerac/archive/2007/07/25/132362.html#Feedback 0 http://www.aygfsteel.com/dyerac/comments/commentRss/132362.html http://www.aygfsteel.com/dyerac/services/trackbacks/132362.html 题记:
其实我这½‹‡æ–‡ç« 纯¾_ÒŽ(gu¨©)˜¯æŠ›ç –引玉之æ„
Google Ajax Search çš„api使用èµäh¥òq¶ä¸å›°éš¾,如果有高手对æ¤ä¸å±‘一™å„¡š„è¯?ä¸å¦¨å›žç”一下我的真æ£ç”¨æ„?那就是一个出色的web api该如何设计呢? 它的体系架构是什ä¹? æˆ‘å¯¹æ¤æœ‰ä¸ªåˆæ¥çš„æƒÏx³•, å‰ç«¯å¼€å‘自å·Þqš„jsåº? 调用˜qœç«¯çš„æœåŠ? 但是具体实施该如何呢? ä¼ è¾“æ–¹å¼è¯¥æ˜¯å¦‚何? JSON? 自定义XML? ˜q˜æ˜¯SOAP? 现在很ç«çš„RESTå¯?web api的设计有什么媄å“? ˜q˜æœ›å„ä½é«˜æ‰‹èµæ•™ ^_^
回到æ£é¢˜,看看如何用google apiæž„å¾è‡ªå·±çš„ajax æœçƒ¦. 阅读全文 ]]> google web toolkit 试用ž®è®° http://www.aygfsteel.com/dyerac/archive/2006/07/29/60749.htmldyerac in java... dyerac in java... Sat, 29 Jul 2006 06:49:00 GMT http://www.aygfsteel.com/dyerac/archive/2006/07/29/60749.html http://www.aygfsteel.com/dyerac/comments/60749.html http://www.aygfsteel.com/dyerac/archive/2006/07/29/60749.html#Feedback 9 http://www.aygfsteel.com/dyerac/comments/commentRss/60749.html http://www.aygfsteel.com/dyerac/services/trackbacks/60749.html ajax现在的应用也很广泛了,å…¶ä¸å¯èƒ½ç”¨çš„æœ€å¤?ä¹Ÿå‡ ä¹Žä¼š(x¨¬)åœ¨æ¯æœ¬ä»‹¾lajax的书上出现的案例,大概ž®±æ˜¯å…³äºŽç”¨æˆ·æ³¨å†Œæ—¶å¯¹ç”¨æˆ·åçš„‹‚€éª?å› æ¤æˆ‘也选ä¸ç”¨gwt完戾cÖM¼¼çš„功èƒ?考虑到demo的简易æ€?具体的功能羃å‡å¦‚ä¸?
在输入框ä¸è¾“入用户åå?ž®†é¼ æ ‡ç‚¹¼›»è¾“入框, ½E‹åºž®†è°ƒç”¨åŽå°servlet自动‹‚€éªŒè¾“入信æ?如果输入内容为空,则æ½Cºé”™è¯¯ä¿¡æ?如果输入信æ¯ä¸ºdyerac,则æ½Cø™¯¥ç”¨æˆ·å·²æ³¨å†?本æ¥åº”该是先‹‚€éªŒæ•°æ®åº“çœ‹ç”¨æˆ·åæ˜¯å¦å·²ç»å˜åœ¨,ä¸ÞZº†½Ž€ä¾¿æˆ‘çœåŽ»äº†è¿™ä¸€æ?直接用dyerac替代);å¦‚æžœéƒ½ä¸æ˜?则显½Cºå‡º‹Æ¢è¿Žä¿¡æ¯.
åŒæ ·,ä½ ä¹Ÿå¯ä»¥ç›´æŽ¥ç‚¹å‡»"test ajax"按键手工˜q›è¡Œ‹‚€éª?‹‚€éªŒåŽŸåˆ™å’Œå‰é¢ç›¸åŒ
阅读全文 ]]> Google Web Toolkit 入门 http://www.aygfsteel.com/dyerac/archive/2006/07/23/59686.htmldyerac in java... dyerac in java... Sun, 23 Jul 2006 11:19:00 GMT http://www.aygfsteel.com/dyerac/archive/2006/07/23/59686.html http://www.aygfsteel.com/dyerac/comments/59686.html http://www.aygfsteel.com/dyerac/archive/2006/07/23/59686.html#Feedback 0 http://www.aygfsteel.com/dyerac/comments/commentRss/59686.html http://www.aygfsteel.com/dyerac/services/trackbacks/59686.html Google Web Toolkit 入门
è‚?è? å”?J æ—创始äh 2006 òq?7 æœ?03 æ—? Ajax½Ž€ä»?br /> Ajaxæ˜?Asynchronous JavaScript and XMLåQˆä»¥å?DHTML ½{‰ï¼‰çš„羃写,由XHTMLã€CSSã€JavaScriptã€XMLHttpRequestã€XML½{‰æŠ€æœ¯ç»„åˆè€ŒæˆåQŒæ˜¯å½“å‰Web应用开å‘领域的çƒé—¨æŠ€æœ¯ï¼Œç”¨äºŽåˆ›å¾æ›´åŠ åŠ¨æ€å’Œäº¤äº’性更好的Web应用½E‹åºåQŒæå‡ç”¨æˆïL(f¨¥ng)š„‹¹è§ˆä½“éªŒã€?br /> Ajaxçš„æ ¸å¿ƒæ˜¯JavaScript对象XmlHttpRequest。XmlHttpRequestå¤„ç†æ‰€æœ‰æœåŠ¡å™¨é€šä¿¡çš„å¯¹è±¡ï¼Œæ˜¯ä¸€¿U支æŒå¼‚æ¥è¯·æ±‚的技术。简而言之,XmlHttpRequest使æ?zh¨¨n)¨å¯ä»¥ä½¿ç”¨JavaScript呿œåС噍æå‡ºè¯äh±‚òq¶å¤„ç†å“应,而ä¸é˜Õd¡žç”¨æˆ·ã€?br /> Ajaxòq¶ä¸æ˜¯æœ¬æ–‡çš„ä¸å¿ƒå…Ïx³¨ç‚¹ï¼Œå› 椘q™é‡Œä¸å†èµ˜è¿°åQŒè¯·å¤§å®¶è®‰K—®å‚考资æºåŒºçš„相关链接,了解更多关于Ajax技术和应用斚w¢çš„知识ã€?br /> ä¸ÞZ»€ä¹ˆé€‰æ‹©GWTåQ?br /> 众所周知åQŒå³ä½¿å¯¹äºŽAjax技术éžå¸¸ç†Ÿæ‚(zh¨¨n)‰çš„å¼€å‘者而言åQŒAjax应用的开å‘和调试˜q‡ç¨‹ä¹Ÿä¸æ˜¯ä¸€ä»¶å®¹æ˜“的事情åQŒæ›´å›°éš¾çš„æ˜¯åQŒåˆ°ç›®å‰ä¸ºæ¢åQŒä¸€ç›´æ²¡æœ‰å‡ºçްåˆé€‚的开å‘工兯‚ƒ½å¤Ÿæ”¯æŒAjax应用的开å‘和调试ã€?br /> 与æ¤ç›¸å的是åQŒJavaè¯è¨€--ä¼ä¸šåº”用开å‘çš„ä¸ÀLµè¯è¨€-的开å‘和调试˜q‡ç¨‹å´å› 为有å„ç§å„æ ·å¼€å‘å·¥å…ïL(f¨¥ng)š„æ”¯æŒè€Œç®€å•的多,而且˜q™æ ·çš„å¼€å‘å·¥å…ähˆ‘们å¯ä»¥å…费获得,比如Eclipseã€NetBeansã€?br /> 如果能够应用Javaè¯è¨€å¼€å‘AjaxåQŒAjax应用开å‘的最大难é¢?å¼€å‘å·¥å…ïL(f¨¥ng)š„¾~ºå¤±-ž®±å°†˜qŽåˆƒè€Œè§£ã€‚è¿™¿U情况下åQŒæˆ‘们就å¯ä»¥æ—¢å……分利用Javaè¯è¨€çš„å¼€å‘优劉K™ä½ŽAjax应用开å‘的隑ֺ¦åQŒåŠ å¿«Ajax应用的开å‘速度åQŒäØ“(f¨´)Ajaxçš„å¤§è§„æ¨¡åº”ç”¨åˆ›é€ å¯èƒ½ï¼Œåˆå¯ä»¥å……åˆ†å‘æŒ¥Ajax技术的优势åQŒåˆ›å»ºæ›´åŠ åŠ¨æ€å’Œäº¤äº’性更好的Web应用½E‹åºåQŒæå‡ç”¨æˆïL(f¨¥ng)š„‹¹è§ˆä½“éªŒã€?br /> Google Web Toolkit(½Ž€¿U°GWT)的出çŽîCØ“(f¨´)我们æä¾›äº†è¿™¿Uå¯èƒ½ã€‚GWT是Google推出的Ajax应用开å‘包åQŒæ”¯æŒå¼€å‘者ä‹É用Javaè¯è¨€å¼€å‘Ajax应用。GWT框架本èín是开æºçš„åQŒä½†æ˜¯GWTä¸çš„å¼€å‘工具仅仅æä¾›å¼€å‘用LicenseåQŒä¸å…许分å‘ã€?br /> GWTæä¾›äº†ä¸€¾l„基于Javaè¯è¨€çš„å¼€å‘包åQŒè¿™ä¸ªå¼€å‘包的设计å‚考Java AWT包设计,¾cÕd‘½åè§„åˆ™ã€æŽ¥å£è®¾è®¡ã€äº‹ä»¶ç›‘å¬ç‰éƒ½å’ŒAWTéžå¸¸¾cÖM¼¼ã€‚熟æ‚(zh¨¨n)‰Java AWT的开å‘者ä¸éœ€è¦èŠ±è´¹å¤šå¤§çš„åŠ›æ°”ž®Þpƒ½å¤Ÿå¿«é€Ÿçš„ç†è§£GWTå¼€å‘工具包åQŒå°†æ›´å¤šåœ°æ—¶é—´æŠ•入到GWT应用的开å‘过½E‹ä¸ã€?br /> å¼€å‘出æ¥çš„Java应用ž®†ç”±GWTå¼€å‘包æä¾›çš„编译工å…ïL(f¨¥ng)¼–译åŽå£°ç”Ÿæˆå¯¹åº”çš„ã€åº”用了Ajax技术的Web应用åQŒJava应用ä¸å‡ºçŽ°çš„ã€å’ŒæœåŠ¡å™¨ä¹‹é—´çš„äº¤äº’åŠ¨ä½œè¢«è‡ªåŠ¨ç”Ÿæˆçš„异æ¥è°ƒç”¨ä»£ç 所代替ã€?br /> GWTç‰ÒŽ(gu¨©)€?br /> GWT除了支挞®†åº”用Javaè¯è¨€å¼€å‘的应用转化为Ajax应用åQŒåŒæ—¶æä¾›äº†æ›´å¤šçš„高¾U§ç‰¹æ€§ï¼Œä¸‹é¢æ˜¯è¿™äº›ç‰¹æ€§çš„½Ž€å•æ˜q°ã€?br /> 1. GWT¾~–译å™?br /> GWT¾~–译器是GWTçš„æ ¸å¿ƒï¼Œè´Ÿè´£å®Œæˆž®†Javaä»£ç ¾˜»è¯‘很Ajax内容的工作。GWT¾~–译器能够翻译Javaè¯è¨€çš„大部分ç‰ÒŽ(gu¨©)€§ã€‚包括支æŒJavaè¯è¨€ä¸çš„基本¾cÕdž‹ã€è¿ä¾‹å¤„ç†ç‰åQŒæ”¯æŒjava.lang包和java.util包ä¸çš„ç»å¤§éƒ¨åˆ†ç±»å’ŒæŽ¥å£ï¼Œæ”¯æŒæ£åˆ™è¡¨è¾¾å¼å’Œåºåˆ—化ã€?br /> 2. è·¨åã^å°æ”¯æŒ?br /> å¦‚æžœä½ ä‹É用GWTä¸æä¾›çš„æ˜„¡¤º¾l„äšg(比如Button)和组装组ä»?比如VerticalPanel)åQŒGWT¾~–译生æˆçš„Ajax应用能够支æŒå¤§éƒ¨åˆ†çš„‹¹è§ˆå™¨å’Œæ“作¾pÈ»ŸåQŒæ¯”如Internet Explorerã€Firefox½{‰ï¼Œä¹Ÿèƒ½å¤Ÿæ”¯æŒLinuxã€Windows½{‰ä¸åŒæ“作系¾lŸã€‚è¿™æ˜¯å› ä¸ºGWT最大é™åº¦çš„ž®†è¿™äº›æŽ§ä»¶ç¿»è¯‘戋¹è§ˆå™¨å†…¾|®çš„¾cÕdž‹ã€‚比如Button¾cȼ–译åŽç”Ÿæˆçš„æ˜¯æ ‡å‡†HTMLåQ?lt;input type="button">ã€?br /> GWT廸™®®ä½¿ç”¨CSS修饰™åµé¢å…ƒç´ 的显½Cºæ•ˆæžœã€‚GWT的类ä¸å¾ˆž®‘æä¾›è®¿é—®é¡µé¢å…ƒç´ æ ·å¼å±žæ€§çš„æ–ÒŽ(gu¨©)³•åQŒæˆ‘们å¯ä»¥ç›´æŽ¥åœ¨CSSæ–‡äšgä¸é€šè¿‡å¯¹åº”çš„æ ·å¼å¿U°æ¥è®„¡½®™åµé¢å…ƒç´ 的默认显½Cºæ•ˆæžœã€‚比如ä‹Éç”?.gwt-Button { font-size: 150%; } 使用Buttonå…ƒç´ çš„é»˜è®¤æ˜¾½Cºæ•ˆæžœã€?br /> 3. 宿主模å¼(Hosted Mode) å®¿ä¸»æ¨¡å¼æ˜¯æŒ‡æˆ‘们和没有è{æ¢äØ“(f¨´)Ajax应用的GWT应用交互的状æ€ã€‚当我们开å‘和调试æ—Óž¼Œæˆ‘们ž®×ƒ¸€ç›´å¤„在宿ä¸ÀL¨¡å¼ä¸‹ã€‚在˜q™ç§æƒ…况下,Java虚拟æœÞZ‹É用GWT内置的æµè§ˆå™¨˜q行GWT应用¾~–译åŽçš„class内容åQŒå› æ¤èƒ½å¤Ÿæä¾?¾~–ç ã€æµ‹è¯•ã€è°ƒè¯?˜q‡ç¨‹çš„æœ€ä½³é€Ÿåº¦ã€?br /> 我们å¯ä»¥˜q行com.google.gwt.dev.GWTShellå¯åŠ¨å®¿ä¸»æ¨¡å¼ã€?br /> 4. Web模å¼(Web Mode) Webæ¨¡å¼æ˜¯æŒ‡å·²ç»æˆåŠŸè½¬åŒ–ä¸ºAjax应用的状æ€ï¼Œ˜q™ç§çжæ€ä¸‹åQŒæˆ‘们已¾l开始通过Webæ–¹å¼æ¥è®¿é—®Ajax应用了ã€?br /> 在Web模å¼ä¸‹è¿è¡Œæ—¶åQŒä¸å†éœ€è¦GWT工具包或者JVM的支æŒã€?br /> 5. 命ä×o(h¨´)行工å…?br /> GWTå·¥å…·åŒ…ä¸æä¾›äº†å‡ ä¸ªéžå¸”R€‚用的å°å·¥å…·æ¥å¸®åŠ©æˆ‘ä»¬æ›´å¿«çš„å»ºç«‹GWT应用开å‘环境:(x¨¬)projectCreatorã€applicationCreatorã€junitCreatorã€?br /> projectCreator 创å¾åœ¨Eclipseä¸å¼€å‘GWT应用所需è¦çš„™å¹ç›®åŸºæœ¬æ–‡äšgå’Œå¯é€‰çš„Ant buildfileæ–‡äšgã€? applicationCreator applicationCreator命ä×o(h¨´)用于创å¾åŸºæœ¬çš„HelloWorldåQ应用和GWT应用开å‘环境ã€? junitCreator 生æˆjunti‹¹‹è¯•代ç ã€? 通过上é¢çš„内容,我们已ç»äº†è§£äº†GWT工具集工作的基本原ç†å’Œä¸»è¦ç‰¹æ€§ã€‚有些迫ä¸åŠ(qi¨¢ng)待了å§ï¼Œé‚£ä¹ˆž®Þp¯·éšæˆ‘ä¸€èµ¯‚¿›å…¥GWT应用开å‘çš„˜q‡ç¨‹å§ï¼Œäº«å—应用Javaè¯è¨€å¼€å‘Ajax应用带æ¥çš„简å•和便利ã€?br /> æœ¬æ–‡ä¸æ‰€æœ‰çš„环境准备ã€å®žä¾‹å¼€å‘和说明å‡é’ˆå¯¹Windowsæ“作òq›_°åQŒå¦‚æžœä‹É用其他的æ“作¾pÈ»ŸåQŒè¯·æ ÒŽ(gu¨©)®å®žé™…情况˜q›è¡Œé€‚当的调整ã€?br /> 环境准备 1ã€?下è²å’Œå®‰è£…JDK1.4.X GWT工具包的¾~–译需è¦JDK支æŒåQŒå› æ¤åœ¨å®‰è£…GWT工具包之å‰è¯·ä¸‹è²å’Œå®‰è£…åˆé€‚çš„JDK。GWT工具支æŒJavaè¯è¨€1.4ç‰ˆæœ¬æˆ–è€…ä»¥ä¸‹ç‰ˆæœ¬ï¼Œå› æ¤JDK版本选择JDK1.4.X是比较åˆé€‚çš„åQŒä¸éœ€è¦é‡‡ç”¨æœ€æ–°çš„JDK5.0或者更高版本ã€?br /> 误‚®¿é—®java.sun.com¾|‘站上下载安装版本,下è²åŽå®‰è£…到C:/jdk目录下,本书ä¸çš„åŽç®‹å†…容ä¸å°†ä½¿ç”¨%JAVA_HOME%å˜é‡æ¥å¼•用这个目录ã€?br /> æ‚(zh¨¨n)¨å¯ä»¥æ ¹æ®å®žé™…情况将JDK安装åˆîC“Qæ„目录下。但是在˜q行本文ä¸ä¾‹å的时候,误‚®°ä½å°†å¯¹åº”çš?JAVA_HOME%å˜é‡æ›¿æ¢ä¸ºæ?zh¨¨n)¨çš„实际安装目录ã€?br /> 2ã€?下è²å’Œå®‰è£…GWT 误‚®¿é—?/font>
http://code.google.com/webtoolkit/
下è²GWT的最新版本,ž®†ä¸‹è½½çš„压羃文äšg解压¾~©åˆ°C:/GWT目录下。本书ä¸çš„厾l内容丞®†ä‹Éç”?GWT_HOME%å˜é‡æ¥å¼•用这个目录ã€?br /> GWT工具包支æŒä¸åŒçš„æ“ä½œ¾pÈ»ŸåQŒè¯·æ ÒŽ(gu¨©)®è‡ªå·±çš„æ“ä½œç³»¾lŸé€‰æ‹©åˆé€‚的安装包ã€?br /> æ‚(zh¨¨n)¨å¯ä»¥æ ¹æ®å®žé™…情况将GWT安装åˆîC“Qæ„目录下。但是在˜q行本文ä¸ä¾‹å的时候,误‚®°ä½å°†å¯¹åº”çš?GWT_HOME%å˜é‡æ›¿æ¢ä¸ºæ?zh¨¨n)¨çš„实际安装目录ã€?br /> ½W¬ä¸€ä¸ªä¾‹å?Hello WorldåQ?br /> 下é¢çš„内容䏿ˆ‘们ž®†ä»‹¾l如何ä‹É用GWT工具集æ¥å®Œæˆ½W¬ä¸€ä¸ªGWT的例å?"Hello WorldåQ?åQŒåƈ且将使用GWT¾~–译å?qi¨¢ng)将他è{åŒ–äØ“(f¨´)Ajax应用åQŒåœ¨‹¹è§ˆå™¨ä¸å®Œæˆ‹¹‹è¯•ã€?br /> 我们è¦å®Œæˆçš„例åè¦å®žçŽ°çš„åŠŸèƒ½åŒ…æ‹¬åQ?br /> 1ã€?在页é¢ä¸Šæ˜„¡¤ºä¸€ä¸ªæŒ‰é’?br /> 2ã€?点击该按钮,默认情况下,我们ž®†åœ¨æŒ‰é’®åŽé¢ç´§è·Ÿç€æ˜„¡¤ºå—符ä¸?Hello World!"ã€?br /> 3ã€?如果点击按钮æ—Óž¼Œ"Hello World!"å—符串已¾l显½Cºåœ¨‹¹è§ˆå™¨ä¸åQŒæˆ‘们覞®†ä»–éšè—èµäh¥ã€‚我们现在开始ä‹É用GWT工具集完æˆ?Hello WorldåQ?例å的开å‘,下é¢çš„æ¥éª¤æ˜¯å®Œæˆ"Hello WorldåQ?例åå¼€å‘环境酾|®ã€åº”用开å‘ã€ç¼–译的基本æ¥éª¤åQŒåŒæ ·é€‚用于其他GWT应用的开å‘ï¼Œåªæ˜¯æ ÒŽ(gu¨©)®å®žé™…情况å¯èƒ½æœ‰å¢žå‡ã€?br /> 1ã€?创å¾GWT应用开å‘环å¢?br /> 从上é¢çš„GWTç‰ÒŽ(gu¨©)€§éƒ¨åˆ†æˆ‘们知é“,GWTå·¥å…·åŒ…ä¸æä¾›çš„applicationCreator命ä×o(h¨´)行工具å¯ä»¥å¸®åŠ©æˆ‘ä»¬åˆ›å»ºGWTåº”ç”¨å¼€å‘æ‰€éœ€è¦çš„环境åQŒå› æ¤æˆ‘们å¯ä»¥ç›´æŽ¥ä‹É用applicationCreator帮助我们完战q™é¡¹å·¥ä½œã€?br /> 打开命ä×o(h¨´)è¡Œå·¥å…øP¼Œ˜q›å…¥C:/æ ¹ç›®å½•ä¸‹åQŒæ‰§è¡?mkdi"命ä×o(h¨´)åˆ›å¾æ–°çš„æ–‡äšg目录HelloWorldã€?br /> C:\> mkdir HelloWorld 执行下é¢çš„命令将%JAVA_HOME%\bin目录å’?GWT_HOME%ç›®å½•åŠ å…¥åˆ°PATH路径ä¸ã€?br /> C:\>set path=%JAVA_HOME%\bin;%GWT_HOME% 请将命ä×o(h¨´)行ä¸çš?JAVA_HOME%替æ¢ä¸ºå®žé™…环境ä¸JDK的安装目录,ž®?GWT_HOME%替æ¢ä¸ºGWT工具包的安装目录ã€?br /> ˜q›å…¥æ–°åˆ›å»ºçš„HelloWorld目录åQŒç„¶åŽè¿è¡ŒapplicationCreator命ä×o(h¨´)创å¾GWT应用开å‘环境ã€?br /> applicationCreator.cmd命ä×o(h¨´)支æŒçš„è¯æ³•如下ã€?br /> ApplicationCreator [-eclipse projectName] [-out dir] [-overwrite] [-ignore] className 其䏿œ€é‡è¦çš„ä¸€ä¸ªå‚æ•°æ˜¯classnameåQŒä¹Ÿž®±æ˜¯æˆ‘们创å¾çš„GWT应用ä¸çš„主Java¾c»ï¼Œæˆ‘们˜q™é‡Œé€‰æ‹©ä½¿ç”¨org.vivianj.gwt.client.HelloWorldã€?br /> C:\HelloWorld>applicationCreator.cmd org.vivianj.gwt.client.HelloWorld æ ÒŽ(gu¨©)®GWT工具包的默认规则åQŒGWT应用ä¸çš„主Java¾cÀLŠ¥å的最åŽä¸€ŒDµå¿…™åÀL˜¯client。也ž®±æ˜¯è¯ß_(d¨¢)¼Œåªæœ‰xxx.client.Xxxx˜q™æ ·å‘½åçš„Java¾cÀL‰èƒ½è¢«è¯†åˆ«ä¸ºæ£¼‹®çš„GWT应用ä¸È±»ã€?br /> ApplicationCreator工具˜q行的时候,å±å¹•上会(x¨¬)打å°å¦‚下内容ã€?br /> Created directory C:\HelloWorld\src Created directory C:\HelloWorld\src\org\vivianj\gwt Created directory C:\HelloWorld\src\org\vivianj\gwt\client Created directory C:\HelloWorld\src\org\vivianj\gwt\public Created file C:\HelloWorld\src\org\vivianj\gwt\HelloWorld.gwt.xml Created file C:\HelloWorld\src\org\vivianj\gwt\public\HelloWorld.html Created file C:\HelloWorld\src\org\vivianj\gwt\client\HelloWorld.java Created file C:\HelloWorld\HelloWorld-shell.cmd Created file C:\HelloWorld\HelloWorld-compile.cmd 2ã€?å¼€å?Hello WorldåQ?例å 使用ApplicationCreator工具的时候,ApplicationCreator工具其实已ç»å¸®æˆ‘们生æˆäº†½W¦åˆHello World!例åè¦æ±‚的全部内å®V€‚䨓(f¨´)äº†ä¸æ‰“æ–½W¬ä¸€ä¸ªä¾‹å的演示˜q‡ç¨‹åQŒæˆ‘们先½Ž€å•的了解一下ApplicationCreator工具的生æˆå†…å®V€‚我们将在将在测试过½E‹åŽé¢åšå‡ºæ›´åŠ è¯¦¾l†çš„分æžã€?br /> å›?䏿˜¾½CÞZº†ApplicationCreator工具执行åŽç”Ÿæˆçš„目录¾l“æž„ã€?br /> å›? GWT应用开å‘环å¢?br /> å›?ä¸çš„src\org\vivianj\gwt\client目录ä¸çš„HelloWorld.java是GWT应用的主¾c»ï¼›src\org\vivianj\gwt\public目录ä¸çš„HelloWorld.htmlæ–‡äšg是例å的默认™åµé¢åQ›src\org\vivianj\gwt目录下的HelloWorld.gwt.xml是GWT应用的酾|®æ–‡ä»Óž¼Œæä¾›GWT应用ä¸é¡µé¢å’Œä¸È±»çš„é…¾|®ä¿¡æ¯ï¼›æ ¹ç›®å½•下的HelloWorld-compile.cmdæ–‡äšg用于æä¾›ž®†è¯¥GWT应用¾~–译æˆAjaxçš„å‘½ä»¤ï¼›æ ¹ç›®å½•ä¸‹çš„HelloWorld-shell.cmdæ–‡äšg用于å¯åŠ¨å®¿ä¸»æ¨¡å¼(Hosted Mode)åQŒæ–¹ä¾¿æµ‹è¯•GWT应用ã€?br /> 3ã€?在宿ä¸ÀL¨¡å¼ä¸‹å¯åЍ"Hello WorldåQ?ä¾‹å æˆ‘们å¯ä»¥ç›´æŽ¥åœ¨å‘½ä»¤è¡Œä¸æ‰§è¡ŒHelloWorld-shell.cmdæ¥å¯åŠ¨å®¿ä¸ÀL¨¡å¼?Hosted Mode)åQŒè¿è¡Œæ–°åˆ›å¾çš?Hello WorldåQ?例åã€?br /> C:\HelloWorld>HelloWorld-shell.cmd ˜q™ä¸ªå‘½ä×o(h¨´)ž®†å¯åŠ¨ä¸¤ä¸ªå¯è§†åŒ–界é¢åQšGoogle Web Toolkit Development ShellåQˆè§å›?åQ‰å’ŒGWT内置的GWT应用‹¹è§ˆå™¨ï¼ˆè§å›¾3åQ‰ï¼ŒGWT应用‹¹è§ˆå™¨ä¸ž®†æ˜¾½C?Hello WorldåQ?例åçš„åˆå§‹ç•Œé¢ï¼Œå¦‚果我们点击界é¢ä¸Šçš„"Click Me"按钮åQŒæŒ‰é’®åŽé¢å°†ä¼?x¨¬)显½C?Hello World!"å—符ä¸ÔŒ¼ˆè§å›¾4åQ‰ï¼Œå¦‚æžœå†æ¬¡å•击™åµé¢ä¸Šçš„"Click Me"按钮åQŒæŒ‰é’®åŽé¢çš„"Hello WorldåQ?å—符串会(x¨¬)消失ã€?br /> å›? Google Web Toolkit Development Shell˜qè¡Œç•Œé¢ å›? "Hello WorldåQ?例ååˆå§‹˜qè¡Œç•Œé¢ å›? "Hello WorldåQ?例å-å•击"Clieck Me"按钮åŽçš„ç•Œé¢ 4ã€?¾~–译"Hello WorldåQ?例å è¦å°†GWT应用¾~–译æˆAjax应用åQŒæˆ‘们å¯ä»¥æ‰§è¡ŒHelloWorld-compile.cmdã€?br /> C:\HelloWorld>HelloWorld-compile.cmd 命ä×o(h¨´)˜q行æ—Óž¼Œç•Œé¢ä¸Šå°†ä¼?x¨¬)显½CÞZ¸‹é¢çš„内容ã€?br /> Output will be written into C:\HelloWorld\www\org.vivianj.gwt.HelloWorld Copying all files found on public path Compilation succeeded å…¶ä¸çš„第一行显½Cºç”Ÿæˆçš„Ajax应用ä½äºŽC:\HelloWorld\www\org.vivianj.gwt.HelloWorld目录下ã€?br /> å›? "Hello WorldåQ?例å¾~–译åŽçš„目录¾l“æž„ 从上é¢çš„图䏿ˆ‘们å¯ä»¥çœ‹åˆ°åQŒæ–°ç”Ÿæˆçš„www目录下有一个å为org.vivianj.gwt.HelloWorld的目录,它的命å规则是GWTä¸È±»å…¨å(org.vivianj.gwt.client.HelloWorld)åŽÀLމ其ä¸çš?client."ã€?br /> org.vivianj.gwt.HelloWorld目录下的HelloWorld.htmlæ–‡äšgž®±æ˜¯"Hello WorldåQ?例å对应的页é¢ï¼Œä»?cache.htmlåŽç¼€¾l“尾的文件就æ˜?Hello WorldåQ?例åä¸å¯¹åº”çš„Ajax代ç 部分åQŒè€Œgwt.jsæ–‡äšg则是GWTæä¾›çš„ã€Ajax代ç ä¸éœ€è¦ç”¨åˆ°çš„JavaScript公共函数。其他还有些辅助文äšgã€?br /> 5ã€?Web模å¼ä¸‹æµ‹è¯?Hello WorldåQ?ä¾‹å ˜q行HelloWorld-compile.cmdåŽï¼ŒGWT应用ž®±å·²¾l被¾~–译æˆAjax应用了,ä¸å†ä¾èµ–于JDKå’ŒGWT环境åQŒè€Œä»…ä»…ä¾èµ–于‹¹è§ˆå™¨ã€?br /> 我们打开IE‹¹è§ˆå™¨ï¼Œæ‰“å¼€C:\HelloWorld\www\org.vivianj.gwt.HelloWorld\HelloWorld.htmlæ–‡äšgåQŒå°±å¯ä»¥çœ‹åˆ°"Hello WorldåQ?例å在Web模å¼ä¸‹çš„˜q行效果åQˆè§å›?åQ‰ï¼Œå•击™åµé¢ä¸Šçš„"Click Me"按钮åQŒæŒ‰é’®åŽé¢ä¼š(x¨¬)出现"Hello WorldåQ?å—符ä¸ÔŒ¼ˆè§å›¾7åQ‰ï¼Œå¦‚æžœå†æ¬¡å•击™åµé¢ä¸Šçš„"Click Me"按钮åQŒæŒ‰é’®åŽé¢çš„"Hello WorldåQ?å—符串会(x¨¬)消失ã€?br /> å›? Web模å¼ä¸‹è¿è¡?HelloWorldåQ?例å的默认效æž?br /> å›? Web模å¼ä¸‹è¿è¡?HelloWorldåQ?例å-å•击"Click Me"按钮åŽçš„æ•ˆæžœ å®žä¾‹è¯¦ç»†åˆ†æž ä¸Šé¢çš„æ¥éª¤ä¸åQŒæˆ‘们已¾l完æˆç¬¬ä¸€ä¸ªGWT应用的编译和‹¹‹è¯•åQŒä¸‹é¢æˆ‘们æ¥è¯¦ç»†çš„介¾l一下GWT应用开å‘过½E‹ä¸æ¶‰åŠ(qi¨¢ng)çš„å‡ ä¸ªæ–‡ä»Óž¼š(x¨¬)昄¡¤º™åµé¢HelloWorld.htmlã€ä¸»¾c»HelloWorld和酾|®æ–‡ä»¶HelloWorld.gwt.xmlã€?br /> 1. 昄¡¤º™åµé¢HelloWorld.html GWT应用ä¸çš„HTMLå†…å®¹å¿…é¡»å˜æ”¾åœ¨public目录下,public目录的全路径æ˜?org\vivianj\gwt\ublic"åQŒæ˜¯ž®†ä¸»¾c»HelloWorld的包å?org.vivianj.gwt.client"ä¸çš„client替æ¢ä¸?public"åŽåÅžæˆçš„目录¾l“æž„ã€?br /> 我们ž®†ä¸»è¦ä»‹¾lHelloWorld.htmlä¸å’ŒGWT相关的内容,HelloWorld.htmlæ–‡äšgçš„å…¨éƒ¨å†…å®¹è§æ¸…å•1ã€?br /> 24.  <meta name='gwt:module' content='org.vivianj.gwt.HelloWorld'> 在HelloWorld.htmlæ–‡äšg的第24行,我们使用metaæ ‡ç¾æŒ‡å®šäº†æœ¬™åµé¢å’ŒGWT模å—" org.vivianj.gwt.HelloWorld"之间的蔾p»ï¼Œmetaæ ‡ç¾çš„name属性是ä¸å˜çš„,而content属性则是GWTä¸È±»å…¨å(org.vivianj.gwt.client.HelloWorld)åŽÀLމ其ä¸çš?client."åŽçš„¾l“æžœã€?br /> 40.    <script language="javascript" src="gwt.js"></script> 在HelloWorld.htmlæ–‡äšg的第40行,我们使用scriptæ ‡è®°å¼•å…¥GWT工具æä¾›çš„é»˜è®¤å‡½æ•°åº“ã€‚æ ¹æ®HTMLè¯è¨€çš„规定,我们å¯ä»¥é€‰æ‹©åœ?lt;head></head>ä¹‹é—´åŠ å…¥˜q™è¡Œä»£ç åQŒä¹Ÿå¯ä»¥é€‰æ‹©åœ?lt;body></body>ä¹‹é—´åŠ å…¥˜q™æ®µä»£ç 。GWT廸™®®åœ?lt;head></head>ä¹‹é—´åŠ å…¥˜q™è¡Œä»£ç åQŒä»¥ä¾¿èŽ·å¾—ç¨å¾®å¿«ä¸€äº›çš„起动速度ã€?br /> 56.   <td id="slot1"></td><td id="slot2"></td> 在HelloWorld.htmlæ–‡äšg的第56行,我们使用tdæ ‡ç¾å®šä¹‰äº†ä¸¤ä¸ªç›¸é‚?c¨¨)š„è¡¨æ ¼å•å…ƒæ û|¼Œä»–们分别命åä¸?slot1"å’?slot2"åQŒæ ¹æ?HelloWorld!"例åçš„è¦æ±‚,å䨓(f¨´)"slot1"çš„å•å…ƒæ ¼ä¸åº”该显½CºæŒ‰é’®ï¼Œè€Œåä¸?slot2"çš„å•å…ƒæ ¼ä¸åˆ™æ ÒŽ(gu¨©)®æƒ…况军_®šæ˜„¡¤º"HelloWorld!"å—ç¬¦ä¸²æˆ–è€…ä¸æ˜„¡¤ºä»ÖM½•内容ã€?br /> 我们ž®†åœ¨ä¸È±»HelloWorld.javaçš„æºä»£ç ä¸ä‹É用RootPanel.get("slot1")æ¥èŽ·å¾—å¯¹è¯¥å•å…ƒæ ¼çš„å¼•ç”¨ï¼Œè¯·å‚考下é¢çš„"ä¸È±»HelloWorld"部分的说明ã€?br /> 43.   <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe> 在HelloWorld.html的第43行,我们使用iframeæ ‡ç¾æ¥è®¾¾|®å½“å‰é¡µæ”¯æŒåކå²åŠŸèƒ½åQŒiframe的属性必™åÕd’Œä¸Šé¢çš„å†…å®¹ä¿æŒä¸€è‡ß_(d¨¢)¼Œå¦åˆ™ž®†ä¸ä¼?x¨¬)è“våˆîC“Q何效果ã€?br /> 清å•1 src\org\vivianj\gwt\public\public\HelloWorld.html 1.   <html> 2.     <head> 3.     4.       <!--               --> 5.       <!-- Any title is fine         --> 6.       <!--               --> 7.       <title>Wrapper HTML for HelloWorld</title> 8.   9.       <!--               --> 10.       <!-- Use normal html, such as style     --> 11.       <!--               --> 12.       <style> 13.         body,td,a,div,.p{font-family:arial,sans-serif} 14.         div,td{color:#000000} 15.         a:link,.w,.w a:link{color:#0000cc} 16.         a:visited{color:#551a8b} 17.         a:active{color:#ff0000} 18.       </style> 19.   20.       <!--               --> 21.       <!-- The module reference below is the link  --> 22.       <!-- between html and your Web Toolkit module -->     23.       <!--               --> 24.       <meta name='gwt:module' content='org.vivianj.gwt.HelloWorld'> 25.       26.     </head> 27.   28.     <!--               --> 29.     <!-- The body can have arbitrary html, or   --> 30.     <!-- you can leave the body empty if you want --> 31.     <!-- to create a completely dynamic ui    --> 32.     <!--               --> 33.     <body> 34.   35.       <!--               --> 36.       <!-- This script is required bootstrap stuff.  --> 37.       <!-- You can put it in the HEAD, but startup  --> 38.       <!-- is slightly faster if you include it here. --> 39.       <!--               --> 40.       <script language="javascript" src="gwt.js"></script> 41.   42.       <!-- OPTIONAL: include this if you want history support --> 43.       <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe> 44.   45.       <h1>HelloWorld</h1> 46.   47.       <p> 48.       This is an example of a host page for the HelloWorld application. 49.       You can attach a Web Toolkit module to any HTML page you like, 50.       making it easy to add bits of AJAX functionality to existing pages 51.       without starting from scratch. 52.       </p> 53.   54.       <table align=center> 55.         <tr> 56.           <td id="slot1"></td><td id="slot2"></td> 57.         </tr> 58.       </table> 59.     </body> 60.   </html> 2. ä¸È±»HelloWorld ä¸È±»HelloWorldå¿…é¡»¾l§æ‰¿è‡ªcom.google.gwt.core.client.EntryPoint¾c»ï¼Œòq¶ä¸”覆盖其public void onModuleLoad()æ–ÒŽ(gu¨©)³•ã€?br /> 在onModuleLoad()æ–ÒŽ(gu¨©)³•ä¸ï¼Œæˆ‘们使用GWTä¸æä¾›çš„é»˜è®¤æ˜„¡¤º¾l„äšg(比如Button)和组装组ä»?比如VerticalPanel)æ¥è®¾è®¡éœ€è¦æ˜¾½Cºçš„界é¢åQŒæ‰€æœ‰è¿™äº›ç»„仉™ƒ½ä½äºŽcom.google.gwt.user.client.ui包下é¢ã€‚这些组件的命å规则和Java AWT的命å规则基本类ä¼û|¼Œä½¿ç”¨æ–¹å¼ä¹Ÿå’ŒAWT的基本一è‡ß_(d¨¢)¼Œä¸è¿‡GWTä¸æä¾›äº†ä¸å°‘的新¾l„å¾å¯ä¾›é€‰æ‹©åQŒæ¯”如å¯ä»¥ç›´æŽ¥ç”¨VerticalPanelæ¥å®žçŽ°åž‚ç›´æ–¹å‘的布局½Ž¡ç†ã€?br /> HelloWorld.javaä¸çš„19å’?0行,ž®±å£°æ˜Žäº†Buttonå’ŒLabel两个昄¡¤º¾l„äšgã€?br /> 19.  final Button button = new Button("Click me"); 20.  final Label label = new Label(); onModuleLoad()æ–ÒŽ(gu¨©)³•ä¸ï¼Œæˆ‘ä»¬éœ€è¦æŠŠç”Ÿæˆçš„æ˜¾½Cºç»„ä»¶æˆ–è€…ç»„è£…ç»„å»ºåŠ å…¥åˆ°æ˜„¡¤º™åµé¢çš„对应显½CºåŒºåŸŸã€‚首先,我们需è¦åœ¨™åµé¢ä¸Šä‹É用idå±žæ€§äØ“(f¨´)昄¡¤ºåŒºåŸŸæŒ‡å®šå”¯ä¸€çš„å¿U?å‚è§æ¸…å•1ä¸çš„56è¡?。com.google.gwt.user.client.ui.RootPanelçš„é™æ€æ–¹æ³•getå¯ä»¥æ ÒŽ(gu¨©)®ä¼ 入的嗽W¦ä¸²å‚æ•°åQˆå‚数值就是显½CºåŒºåŸŸçš„id属性)获喙åµé¢ä¸Šå¯¹åº”的昄¡¤ºåŒºåŸŸã€?br /> HelloWorld.javaçš?6ã€?7行,ž®×ƒ‹É用了RootPanelçš„getæ–ÒŽ(gu¨©)³•分别获得™åµé¢ä¸Šidä¸?slot1"ã€?slot2"的显½CºåŒºåŸŸï¼Œç„¶åŽè°ƒç”¨addæ–ÒŽ(gu¨©)³•ž®†ç”Ÿæˆçš„Buttonå’ŒLabelå¯¹è±¡åŠ å…¥åˆ°æ˜¾½CºåŒºåŸŸä¸ã€?br /> 36.  RootPanel.get("slot1").add(button); 37.  RootPanel.get("slot2").add(label); Ajax最é‡è¦çš„åŠŸèƒ½å°±æ˜¯äØ“(f¨´)用户æä¾›æ›´å¥½çš„交互体验,GWTä¸ä‹É用和AWTä¸ç›¸åŒçš„事äšgç›‘å¬æœºåˆ¶å®Œæˆå®¢æˆ·ç«¯äº‹ä»¶ç›‘å¬ï¼ŒGWT䏿”¯æŒçš„Listener接å£åŒ…括ChangeListenerã€ClickListener½{‰ã€‚我们å¯ä»¥é€šè¿‡å„ç§å„æ ·çš„Listener接å£èŽ·å¾—ç”¨æˆ·ç•Œé¢ä¸Šæ‰€å‘生的动作,通过处熘q™äº›åŠ¨ä½œæ¥å®Œæˆå¯¹åº”业务逻辑ã€?br /> HelloWorld.javaä¸çš„½W?2行~29行的内容ž®±å®žçŽîCº†ä¸€ä¸ªClickListender接å£åQŒåƈ且æä¾›äº†å¯¹åº”çš„onClickæ–ÒŽ(gu¨©)³•实现åQŒç”¨äºŽå¤„ç†æŒ‰é’®ç‚¹å‡ÕdŽçš„业务逻辑åQˆåˆ¤æ–是å¦éœ€è¦æ˜¾½C?Hello World!"å—符ä¸ÔŒ¼‰åQŒç„¶åŽè°ƒç”¨Button对象的addClickListeneræ–ÒŽ(gu¨©)³•å¢žåŠ ç›‘å¬å™¨ã€?br /> 22.  button.addClickListener(new ClickListener() { 23.    public void onClick(Widget sender) { 24.     if (label.getText().equals("")) 25.     label.setText("Hello World!"); 26.     else 27.     label.setText(""); 28.    } 29.  }); HelloWorld¾cÈš„全部æºä»£ç å†…å®¹è§æ¸…å•2ã€?br /> 清å•2 src\org\vivianj\gwt\client\HelloWorld.java 1.   package org.vivianj.gwt.client; 2.   3.   import com.google.gwt.core.client.EntryPoint; 4.   import com.google.gwt.user.client.ui.Button; 5.   import com.google.gwt.user.client.ui.ClickListener; 6.   import com.google.gwt.user.client.ui.Label; 7.   import com.google.gwt.user.client.ui.RootPanel; 8.   import com.google.gwt.user.client.ui.Widget; 9.   10.   /** 11.   * Entry point classes define <code>onModuleLoad()</code>. 12.   */ 13.   public class HelloWorld implements EntryPoint { 14.   15.   /** 16.    * This is the entry point method. 17.    */ 18.   public void onModuleLoad() { 19.    final Button button = new Button("Click me"); 20.    final Label label = new Label(); 21.   22.    button.addClickListener(new ClickListener() { 23.     public void onClick(Widget sender) { 24.     if (label.getText().equals("")) 25.      label.setText("Hello World!"); 26.     else 27.      label.setText(""); 28.     } 29.    }); 30.   31.    // Assume that the host HTML has elements defined whose 32.    // IDs are "slot1", "slot2". In a real app, you probably would not want 33.    // to hard-code IDs. Instead, you could, for example, search for all 34.    // elements with a particular CSS class and replace them with widgets. 35.    // 36.    RootPanel.get("slot1").add(button); 37.    RootPanel.get("slot2").add(label); 38.   } 39.   } 3. é…置文äšgHelloWorld.gwt.xml é…置文äšgä¸åŒ…æ‹¬ä¸¤ä¸ªå…ƒç´ ã€‚Inheritså…ƒç´ åœ°è®¾¾|®GWT应用的ç‘ô承信æ¯ï¼Œè€Œentry-pointå…ƒç´ çš„class属性则用于讄¡½®è®„¡½®GWT应用的主¾c…R€?br /> 清å•3 src\org\vivianj\gwt\HelloWorld.gwt.xml 1.   <module> 2.   3.     <!-- Inherit the core Web Toolkit stuff.       --> 4.     <inherits name='com.google.gwt.user.User'/> 5.   6.     <!-- Specify the app entry point class.       --> 7.     <entry-point class='org.vivianj.gwt.client.HelloWorld'/> 8.   9.   </module> ¾l“æŸè¯?br /> Ajax是当å‰çƒé—¨çš„Webåº”ç”¨å¼€å‘æŠ€æœ¯ï¼ŒJava是ä¼ä¸šåº”用开å‘ä¸çš„主‹¹æŠ€æœ¯ï¼ŒGWT框架ž®†è¿™ä¸¤ç§æŠ€æœ¯åˆäºŒäØ“(f¨´)一åQŒæ˜¯æˆ‘们能够应用Javaè¯è¨€æ¥å¼€å‘AjaxåQŒåœ¨ä¿ç•™Ajax技术的优点基础上,解决了Ajax应用开å‘ã€è°ƒè¯•å›°éš„¡š„¾~ºç‚¹ã€?br /> 本文ä¸ä»‹¾l了GWT的基本知识ã€ä¸»è¦ç‰¹æ€§ï¼Œæä¾›äº?HelloWorldåQ?例å说明使用Javaå’ŒGWT框架开å‘Ajax应用的开å‘ã€ç¼–è¯‘ã€æµ‹è¯•过½E‹ï¼Œòq¶ä¸”通过å¯?HelloWorldåQ?例å䏿¶‰å?qi¨¢ng)文件的分æžåQŒè®²è§£äº†ä½¿ç”¨GWT框架开å‘Ajax应用的技术细节和¾U¦æŸæ¡äšgã€?br /> GWT 在线资æºåQ?
http://code.google.com/webtoolkit/gettingstarted.html
GWT 下è²åœ°å€åQ?/font>
http://code.google.com/webtoolkit/
GWT 在线FAQåQ?/font>
http://code.google.com/webtoolkit/faq.html
GWT å¼€å‘者论å›ï¼š(x¨¬)
http://groups.google.com/group/Google-Web-Toolkit
使用 Google Web Toolkit å¼€å?Ajax
]]> Google Web Toolkit(¾˜»è¯‘,è½? http://www.aygfsteel.com/dyerac/archive/2006/07/23/59684.htmldyerac in java... dyerac in java... Sun, 23 Jul 2006 11:08:00 GMT http://www.aygfsteel.com/dyerac/archive/2006/07/23/59684.html http://www.aygfsteel.com/dyerac/comments/59684.html http://www.aygfsteel.com/dyerac/archive/2006/07/23/59684.html#Feedback 0 http://www.aygfsteel.com/dyerac/comments/commentRss/59684.html http://www.aygfsteel.com/dyerac/services/trackbacks/59684.html 阅读全文 ]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
°ÍÂí |
ÁÙ¸ßÏØ |
Ã÷ÏªÏØ |
Ù¤Ê¦ÏØ |
°×ºÓÏØ |
Áú¿ÚÊÐ |
ÎÚËÕÊÐ |
ãäÁêÏØ |
̨ÖÐÏØ |
ºø¹ØÏØ |
¸ÊÄÏÏØ |
ÕØ¶«ÊÐ |
»³Ô¶ÏØ |
ÁÖµéÏØ |
Çì°²ÏØ |
ÈýÃ÷ÊÐ |
Ë«³ÇÊÐ |
°¢¿ËËÕÊÐ |
ÐÇ×ù |
¹ãºÓÏØ |
ºé½ÊÐ |
Ç¦É½ÏØ |
ºÓ½òÊÐ |
ɳÌïÇø |
ÁÙå¢ÏØ |
°ÍÑåÄ×¶ûÊÐ |
ß®ÑôÏØ |
Ä«ÓñÏØ |
ÎåÁ«ÏØ |
Îå·å |
Î人ÊÐ |
³¤°× |
Ëì´¨ÏØ |
¸»ÄþÏØ |
°ÍÁÖÓÒÆì |
ÐÂÓàÊÐ |
µç°×ÏØ |
ÑÅ½ÏØ |
¶«Ïç |
ͨ»¯ÏØ |
¾¸°²ÏØ |