刚才使用dojo1.0.1发现一个奇怪的问题:
首先陈述一下熊的的开发环境:
首先,先解释一下base标签的作用:确保文档中所有的相对URL都可以被分解成正确的文档地址,即使在文档本身被移动或重命名的情况下也可以正确解析。当使用时,base 元素必须出现在文档的 head 内,在任何用于引用外部资源的元素之前。
鉴于它的作用,所以一般情况下,兄弟都保留Myeclipse自动帮助生成的这段代码。
但是在测试时发现,如果包含base标签,在IE6下会发生如下错误:
Internet Explorer 无法打开Internet 站点http://localhost:8080/test/formerrjsp。已中止操作。
希望英文好的朋友帮忙问问这个问题的原因。
补充一点,也可能是老调重弹。就是在使用下拉列表框组件时,采用下面的格式:
不要在option的开始和标签之间换行显示。这会导致在运行时看不到我们要显示的选项的情况。这样的错误情况常见于使用工具对代码进行格式化后。
今天在在使用 dijit.Editor发现在服务器端读不到数据。经过查找资料,发现 解决办法如下:
最近在开发中,碰到一个问题,就是在form表单中同时使用dijit.form.DateTextBox、dijit.Editor时出现问题。要么在服务器端取不到dijit.Editor的值,要么 dijit.form.DateTextBox返回的值类似于“ Thu Nov 22 2007 00:00:00 GMT+0800 ”这样的格式。经过多次尝试,找到一个比较简单的解决办法,就是修改dojo中的Form.js的getValues()方法代码如下:
首先陈述一下熊的的开发环境:
- Windows 2003
- eclipse3.3.1
- myeclipse6.0.1
- tomcat6.0.24
- jdk1.6.0_03
java 代码
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
xml 代码
- <base href="<%=basePath%>"/>
首先,先解释一下base标签的作用:确保文档中所有的相对URL都可以被分解成正确的文档地址,即使在文档本身被移动或重命名的情况下也可以正确解析。当使用时,base 元素必须出现在文档的 head 内,在任何用于引用外部资源的元素之前。
鉴于它的作用,所以一般情况下,兄弟都保留Myeclipse自动帮助生成的这段代码。
但是在测试时发现,如果包含base标签,在IE6下会发生如下错误:
Internet Explorer 无法打开Internet 站点http://localhost:8080/test/formerrjsp。已中止操作。
希望英文好的朋友帮忙问问这个问题的原因。
补充一点,也可能是老调重弹。就是在使用下拉列表框组件时,采用下面的格式:
xml 代码
- <select name="city">
- <option>石家庄</option>
- <option>保定</option>
- <option>唐山</option>
- <option>秦皇岛</option>
- <option>承德</option>
- select>
不要在option的开始和标签之间换行显示。这会导致在运行时看不到我们要显示的选项的情况。这样的错误情况常见于使用工具对代码进行格式化后。
今天在在使用 dijit.Editor发现在服务器端读不到数据。经过查找资料,发现 解决办法如下:
js 代码
- function do_submit(form){
- var kw = {
- url: "<%=path%>/first/FirstAction.action",
- content: form.getValues(),//读取表单所有选项的键值对。
- load: function(data){
- //dojo.byId('response').innerHTML = data;
- alert(data);//弹出显示服务器端的响应信息
- },
- error: function(data){
- alert("提交失败: " + data);
- },
- timeout: 2000
- //form: "myForm"//如果使用这种方式,dijit.Editor的数据无法提交
- };
- dojo.xhrPost(kw);//提交表单
- }
xml 代码
- <form dojoType="dijit.form.Form" id="myForm" execute="do_submit(this)">
- ...
- 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 代码
function() { // summary: generate JSON structure from form values // get widget values var obj = {}; dojo.forEach(this.getDescendants(), function(widget){ var value = widget.getValue ? widget.getValue() : widget.value; var name = widget.name; if(!name){ return; } // Store widget's value(s) as a scalar, except for checkboxes which are automatically arrays if(widget.setChecked){ if(/Radio/.test(widget.declaredClass)){ // radio button if(widget.checked){ dojo.setObject(name, value, obj); } }else{ // checkbox/toggle button var ary=dojo.getObject(name, false, obj); if(!ary){ ary=[]; dojo.setObject(name, ary, obj); } if(widget.checked){ ary.push(value); } } }else{ //用于处理DAteTextBox类型的数据 if(widget.value=="Invalid Date" || widget.value=="NaN"){ value=widget; } // plain input dojo.setObject(name, value, obj); } });
希望英语好的兄弟,在看完这篇文章后,能向dojo组织反映一下,或者有什么好的建议,提出来,大家共同讨论。
getValues: