`
noname365
  • 浏览: 134101 次
社区版块
存档分类
最新评论

dojo常见问题讨论

    博客分类:
  • Dojo
阅读更多
刚才使用dojo1.0.1发现一个奇怪的问题:
首先陈述一下熊的的开发环境:
  • Windows 2003
  • eclipse3.3.1
  • myeclipse6.0.1
  • tomcat6.0.24
  • jdk1.6.0_03
因为兄弟使用myeclipse,创建jsp页面时会自动生成代码:

java 代码
  1. <%
  2. String path = request.getContextPath();
  3. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  4. %>
xml 代码
  1. <base href="<%=basePath%>"/>

首先,先解释一下base标签的作用:确保文档中所有的相对URL都可以被分解成正确的文档地址,即使在文档本身被移动或重命名的情况下也可以正确解析。当使用时,base 元素必须出现在文档的 head 内,在任何用于引用外部资源的元素之前。
鉴于它的作用,所以一般情况下,兄弟都保留Myeclipse自动帮助生成的这段代码。
但是在测试时发现,如果包含base标签,在IE6下会发生如下错误:
Internet Explorer 无法打开Internet 站点http://localhost:8080/test/formerrjsp。已中止操作。
希望英文好的朋友帮忙问问这个问题的原因。


补充一点,也可能是老调重弹。就是在使用下拉列表框组件时,采用下面的格式:
xml 代码
  1. <select name="city">
  2. <option>石家庄</<!---->option>
  3. <option>保定<!----></option>
  4. <option>唐山<!----></option>
  5. <option>秦皇岛</<!---->option>
  6. <option>承德<!----></option>
  7. <!---->select>

不要在option的开始和标签之间换行显示。这会导致在运行时看不到我们要显示的选项的情况。这样的错误情况常见于使用工具对代码进行格式化后。
今天在在使用dijit.Editor发现在服务器端读不到数据。经过查找资料,发现解决办法如下:
js 代码
  1. function do_submit(form){
  2. var kw = {
  3. url: "<%=path%>/first/FirstAction.action",
  4. content: form.getValues(),//读取表单所有选项的键值对。
  5. load: function(data){
  6. //dojo.byId('response').innerHTML = data;
  7. alert(data);//弹出显示服务器端的响应信息
  8. },
  9. error: function(data){
  10. alert("提交失败: " + data);
  11. },
  12. timeout: 2000
  13. //form: "myForm"//如果使用这种方式,dijit.Editor的数据无法提交
  14. };
  15. dojo.xhrPost(kw);//提交表单
  16. }
xml 代码
  1. <form dojoType="dijit.form.Form" id="myForm" execute="do_submit(this)">
  2. ...
  3. <!---->form>

最近在开发中,碰到一个问题,就是在form表单中同时使用dijit.form.DateTextBox、dijit.Editor时出现问题。要么在服务器端取不到dijit.Editor的值,要么dijit.form.DateTextBox返回的值类似于“Thu Nov 22 2007 00:00:00 GMT+0800”这样的格式。经过多次尝试,找到一个比较简单的解决办法,就是修改dojo中的Form.js的getValues()方法代码如下:
js 代码
  1. getValues: function() {
  2. // summary: generate JSON structure from form values
  3. // get widget values
  4. var obj = {};
  5. dojo.forEach(this.getDescendants(), function(widget){
  6. var value = widget.getValue ? widget.getValue() : widget.value;
  7. var name = widget.name;
  8. if(!name){ return; }
  9. // Store widget's value(s) as a scalar, except for checkboxes which are automatically arrays
  10. if(widget.setChecked){
  11. if(/Radio/.test(widget.declaredClass)){
  12. // radio button
  13. if(widget.checked){
  14. dojo.setObject(name, value, obj);
  15. }
  16. }else{
  17. // checkbox/toggle button
  18. var ary=dojo.getObject(name, false, obj);
  19. if(!ary){
  20. ary=[];
  21. dojo.setObject(name, ary, obj);
  22. }
  23. if(widget.checked){
  24. ary.push(value);
  25. }
  26. }
  27. }else{
  28. //用于处理DAteTextBox类型的数据
  29. if(widget.value=="Invalid Date" || widget.value=="NaN"){
  30. value=widget;
  31. }
  32. // plain input
  33. dojo.setObject(name, value, obj);
  34. }
  35. });
希望英语好的兄弟,在看完这篇文章后,能向dojo组织反映一下,或者有什么好的建议,提出来,大家共同讨论。
分享到:
评论

相关推荐

    精通Dojo(中文版)

    《精通Dojo(中文版)》是一本深入探讨JavaScript库Dojo的专业书籍,虽然书中所用的Dojo版本较低(1.5之前),但其内容仍然具有很高的参考价值。Dojo是一个强大的开源JavaScript工具包,它提供了丰富的功能,包括DOM...

    Mastering Dojo-JavaScript and Ajax Tools for Great Web Experiences

    最后,作者讨论了在使用Dojo过程中可能遇到的常见问题及其解决方法。这部分强调了调试技巧的重要性,并提供了一些有用的调试工具和策略。 #### 四、深入Dojo API 4.1 **JavaScript模块化** 随着项目的增长,代码...

    用于dojo学习

    9. **最佳实践**:分享Dojo和ArcGIS API开发中的最佳实践和常见问题解决方案。 通过这个学习资源,初学者将能够全面了解Dojo库及其在GIS领域的应用,同时提升JavaScript开发技能。对于已有经验的开发者,它也能提供...

    dojo的二级下拉菜单demo

    在这个“dojo的二级下拉菜单demo”中,我们将探讨Dojo如何实现多级下拉菜单,这是一种常见的交互元素,广泛应用于导航菜单和选项选择。 首先,我们要了解Dojo的模块系统。Dojo使用AMD(Asynchronous Module ...

    dojo提示框

    本篇文章将深入探讨Dojo提示框的三种不同用法。 1. **基础提示框(Basic Dialog)** 基础提示框是最常见的对话框类型,用于展示信息或获取用户输入。在Dojo中,我们可以使用`dijit/Dialog`模块来创建基础提示框。...

    dojo任意级树的节点转移

    本篇将详细探讨"dojo任意级树的节点转移"这一主题,它是Dojo框架在处理树形数据结构时的一个关键操作。 首先,我们要理解Dojo Tree。Dojo Tree是一个可交互的、多级的树状视图,它允许用户通过点击或拖拽来展开、...

    dojo toturial with design best practise

    《dojo toturial with design best practise》是一本深入探讨Dojo框架并结合设计模式实践的书籍。这本书旨在帮助开发者不仅掌握Dojo库的基本用法,还能理解如何在实际项目中运用设计模式,以提高代码质量和可维护性...

    Mastering Dojo

    《Mastering Dojo》是一本深入探讨Dojo框架的专业书籍,由JavaScript和Ajax工具领域的权威作者撰写。这本书针对想要在Web开发中利用Dojo构建高效、用户体验优秀的应用程序的开发者而设计。Dojo是一个强大的...

    dojo version 1.0 websphere 6 workable sample

    - 讨论一些常见的编程错误及其解决方案,帮助开发者避免这些陷阱。 ##### 五、样例文件介绍 1. **项目:DojoPortal_Theme**: - 包含了定制Dojo主题的相关文件。 2. **文件:DojoPortalInit.jspf 和 ...

    dojo ediotr plugin 上传本地文件

    在探讨“dojo editor plugin 上传本地文件”的主题时,我们首先需要理解Dojo Toolkit是什么以及其编辑器插件的功能。Dojo Toolkit是一个开源的JavaScript框架,用于开发高性能、富交互性的Web应用程序。它提供了一...

    dojo.jar

    "dojo.jar"是一个与JavaScript库Dojo Toolkit相关的文件,它通常包含了Dojo的源代码和其他必要的资源。...在阅读提供的博客文章时,可以期待深入学习Dojo的使用方法、最佳实践以及常见问题的解决方案。

    AJAX框架 --- dojo

    标题"dojo"直接指向了我们讨论的核心,即Dojo工具包。Dojo提供了大量的模块和类,涵盖了从DOM操作到动画效果,再到网络通信的方方面面。它的一个主要特点是其模块化结构,允许开发者按需加载特定的功能,从而减少...

    Practical Dojo Projects

    - 针对基于Dojo的Web应用的安全性问题进行讨论 - 探讨如何保护Web应用免受常见的网络攻击 #### 6. **国际化与本地化支持** - 如何为Dojo应用添加多语言支持 - 最佳的国际化与本地化策略 综上所述,《Practical ...

    dojo省份地市级联JSON数据源

    接下来,我们探讨省份地市级联的概念。在网页应用中,这种级联下拉菜单通常用于让用户选择地理位置,如省份、城市等。用户先选择省份,然后根据所选省份加载对应的地级市,最后再根据地市选择县级市。这样做可以减少...

    Struts2 Spring Jpa Ajax Dojo crud小例子

    Struts2、Spring、JPA、Ajax 和 Dojo 是五个在Web开发中常见的技术框架,它们结合使用可以构建高效、灵活且功能丰富的应用程序。在这个"Struts2 Spring Jpa Ajax Dojo crud小例子"中,我们将深入探讨这些技术如何...

    Professional JavaScript Frameworks Prototype, YUI, Ext JS, Dojo and MooTools.pdf

    继续讨论跨浏览器兼容性的事件处理问题。 - **第9章:使用动画和拖放功能** 探索YUI提供的动画和拖放功能,提高用户界面的互动性。 - **第10章:简化AJAX和动态加载** 讲解如何使用YUI来实现AJAX请求和页面的...

    jQuery-1.8-Api-中文版,ATF搭建,DOJO,jChart,autoSize

    在这个主题中,我们将深入探讨jQuery 1.8 API的中文版,ATF(Automated Test Framework)的搭建,DOJO框架,jChart图表库,以及自动调整大小的autoSize功能。这些知识点在Web开发中都有重要的应用。 1. **jQuery ...

    Web开发资料大全(文档手册案例等) 2【CSS JS Dom JQuery Ajax Dojo Prototype ASP SQL 截图工具 颜色选择 】

    接下来,我们将详细探讨这些知识点。 1. **CSS (层叠样式表)**:CSS是用于控制网页元素呈现方式的样式语言。它允许开发者通过定义颜色、字体、布局和其他视觉属性来实现美观的页面设计。学习CSS,你需要理解选择器...

Global site tag (gtag.js) - Google Analytics