今天,我在优化导出时,发现我做的页面按照日期进行查询时,SQL语句打印出来的日期总是初始化的日期。令人奇怪的是,其他参数(地市编码等)查询都没有问题,单单只有日期查询出现问题,真不知道在哪儿出现了问题啊!
我在页面利用alert进行打印,发现日期等参数也传到了Java后台,页面上也正常,但是日期查询还是不行。后来,我从Dao的实现开始,一步一步调试检查,结果发现Java后台没有问题,于是我还是回到页面进行检查。利用console.info()和console.dir()进行打印,通过火狐的firebug调试,发现除日期之外的所有参数都传值正常,就是日期传值为空,而且我发现所有参数传值的方式都是一样的。这是,我就在想它们传参数方式都一样,为什么偏偏日期参数出现问题了,这真是奇了怪啦!后来,同事发现了我的问题,原因是我在传参数时多了一个符号“?”。
具体如下:
一、错误传参方式:
$.ajax({
type:"POST",
url:"../page/student.action",
dataType:'json',
data:{
"date":date,
"code":code
},
success:function(data){
var params = "?date="+date+"&code="+code;
var jspSrc = "../page/student.jsp?"+params;
dojo.byId("stu").src = jspSrc;
}
});
二、正确传参方式:
$.ajax({
type:"POST",
url:"../page/student.action",
dataType:'json',
data:{
"date":date,
"code":code
},
success:function(data){
var params = "?date="+date+"&code="+code;
var jspSrc = "../page/student.jsp"+params;
dojo.byId("stu").src = jspSrc;
}
});
比较两种方式,发现后一种jspSrc中的JSP路径后面是没有问号的,前一种有两个“?”,导致日期参数传值出现问题,所以日期查询不起作用
经过这次,我受到很大启发,做软件开发的,重要的是细节,做事要细心耐心,不能马马虎虎,否则一个小符号就会致命的。