`
Javabengou
  • 浏览: 170718 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

Life with Dojo(0.9-1.0)

阅读更多
一直都在写JAVA方面的东西
现在也写写关于客户端脚本的东西
这篇是自己根据DOJO(0.9-1.0)官方教材的不完全翻译(哈哈,把主要和重要的翻译出来).
其实个人觉得
如果你学会一套或几套JS UI框架,对你以后JSF的自定义组件会很有用
对于JSF怎么说了,毕竟JSP使用了标签,注定在定义组件的时候会有很多HTML代码写在后台代码用来渲染一个组件。
如果有套JS UI做渲染,UIComponent,Helper等类做后台的组件核心也是不错的解决方案(国内有EXT+JSF,现在才觉得,JSP的标签。。。唉)!

现在开始DOJO(0.9-1.0)吧

先来看个示例,一个标准的HTML(官方dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo/example-1-why-doesnt-anyone-fill-out-their-tax-forms/adding-some

xml 代码
 
  1. <head>  
  2.     <title>Taxes, The Surest Thing Next to Death!</title>  
  3. </head>  
  4. <body>  
  5.   
  6. <h1>2007 Tax Form</h1>  
  7.     The Sovereign Nation of Googolica,  In Search We Trust  
  8.   
  9. <form>  
  10.     First Name: <input type="text" length="20" name="first"><br>  
  11.     Last Name: <input type="text" length="20" name="last"><br>  
  12.     Email Address: <input type="text" length="20" name="email"><br>  
  13. <hr>  
  14.   
  15. <ol>  
  16.     <li>  
  17.         Please Enter Your 2007 Gross Income  
  18.         <input type="text" length="10" name="grossIncome">  
  19.     </li>  
  20.     <li>  
  21.         Please enter the value from line 1.  This is your <em>2007 tax</em>  
  22.         <input type="text" length="10" name="tax">  
  23.    </li>  
  24.     <li>  
  25.         Would you like to contribute an extra $3 to the Presidential Campaign Fund?  
  26.         <input type="checkbox" name="campaign" value="Y">  
  27.     </li>  
  28.     <li>  
  29.         Filing Date:  
  30.         <input type="text" length="10" name="filingDate">  
  31.     </li>  
  32. </ol>  
  33.   
  34.   
  35. <input type="submit" value="Submit">  
  36. </form>  
  37. </body>  
上面的代码是大家都能看得懂!这里就不介绍了!

对于上面的代码,如果使用DOJO UI只需要添加少许几行JS代码或者在已存在的标准HTML中添加扩展DOJO的专有属性。
其实这些魔力的所在是一个叫做Dijit - 这里我们可以叫她 "dojo widgets",她完成了各种各样的任务。

Dijit - 的初步认识:

首先我们得做两件事,来让Dijit - 工作(必须在每个使用Dijit 的页面添加2处代码片段):
1.
xml 代码
 
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
  2.             "http://www.w3.org/TR/html4/strict.dtd">  
  3. <html>  
  4. <head>  
  5. <title>Taxes, The Surest Thing Next to Death!</title>  
  6.     <style type="text/css">  
  7.         @import "http://o.aolcdn.com/dojo/0.9.0/dijit/themes/tundra/tundra.css";  
  8.         @import "http://o.aolcdn.com/dojo/0.9.0/dojo/dojo.css"  
  9.     </style>  
  10.     <script type="text/javascript" src="http://o.aolcdn.com/dojo/0.9.0/dojo/dojo.xd.js"  
  11.                 djConfig="parseOnLoad: true"></script>  
  12.     <script type="text/javascript">  
  13.        dojo.require("dojo.parser");  
  14.     </script>  
  15. </head>  

你得导入DOJO的CSS,对于JS脚本,你得导入DOJO的js,当然这里使用的是 aolcdn,你也可以使用你自己服务器上
xml 代码
 
  1. <script type="text/javascript" src="lib/dojo/dojo.js"></script>  
下面这个代码是你必须的(在你使用DOJO ui,她负责解析)
xml 代码
 
  1. <script type="text/javascript">  
  2.        dojo.require("dojo.parser");  
  3.     </script>  
2.
这里要说明的是DOJO默认的Dijit theme(主题)是Tundra
所以第2个要添加的代码片段如下:
xml 代码
 
  1. <body class="tundra">  
如果你不写上上面的代码,DOJO的 ui会让你看起来觉得很奇怪,因为他们基本上依靠CSS的。



上面说了基本的DOJO该做的事情,下面,来让我们把上面的标准HTML代码,改成DOJO的 UI。
这里要介绍个属性,这就是Dijit引进的新属性dojoType":
代码如下:
xml 代码
 
  1. <form>  
  2. First Name: <input type="text" length="20" name="first"  dojoType="dijit.form.TextBox"><br>  
  3. Last Name: <input type="text" length="20" name="last"  dojoType="dijit.form.TextBox"><br>  
  4. Email Address: <input type="text" length="20" name="email"  dojoType="dijit.form.TextBox">  
  5. Filing Date: <input type="text" length="10" name="filingDate" dojoType="dijit.form.DateTextBox">  
  6. <hr>  
  7.   
  8. <ol>  
  9. <li>Please Enter Your 2007 Gross Income  
  10. <input type="text" length="10" name="grossIncome"  dojoType="dijit.form.TextBox"></li>  
  11. <li>Please enter the value from line 1.  This is your <em>2007 tax</em>  
  12. <input type="text" length="10" name="tax"  dojoType="dijit.form.TextBox"></li>  
  13. <li>Would you like to contribute an extra $3 to the Presidential Campaign Fund?  
  14. <input type="checkbox" name="campaign" value="Y"  dojoType="dijit.form.CheckBox"></li>  
  15. </ol>  
其实个人觉得DOJO的这种模式有点接近JAVA import(当然还有很多这样的框架) 大家注意看dojoType这个属性。
下面的代码就更像了,因为她把要使用的UI  类库(先借用JAVA的表述来说吧)在你的HTML header处就要导入进来(或许现在C#,JAVA都在使用这样的导入,DOJO也借用,让大家能感觉到亲近,哈哈!)
如下:
xml 代码           
 
  1. <script type="text/javascript">  
  2.         dojo.require("dojo.parser");  
  3.         dojo.require("dijit.form.TextBox");  
  4.         dojo.require("dijit.form.CheckBox");  
  5.         dojo.require("dijit.form.DateTextBox");  
  6. </script>  
第一遍DOJO(0。9-1.0)的翻译就到这里,希望大家能互相交流!
完整的DEMO在主页dojotoolkit.org/book/dojo-book-0-9/part-1-life-dojo/example-1-why-doesnt-anyone-fill-out-their-tax-forms/adding-some
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics