您的位置:首页 > 其它

让我们记住那些神奇的错误们

2010-07-28 15:14 309 查看
最近开发中碰到几个神奇的问题,写在这里,用以记录我的那些惊奇。

提交表单能提交出js语法错误

<a onclick = 'aaa()' >bbb</a>

<form name = 'fm' action ="dd1.do" method = 'P0ST'>

..................................

</form>

<mce:script language = "javascript"><!--
function aaa(){

fm.submit() ;

}
// --></mce:script>


猜猜以上代码点击aaa会发生什么? 提交表单?不不,以上代码会报js的语法错误。而且有时候用户不一样,还不一定会报错!

怎么样,很神奇吧。让我们来看看原因,在录入的时候,form的method属性录入的是P0ST,注意那个0,是数字的0而不是字母的O

。这样一来,其实表单是按照GET方法提交的。在写代码的时候Eclipse不会报错,只会警告,但是一个工程中警告的地方少说有1W多处……,但是一旦这个表单提交的内容超过GET方法的限制,就会报JS语法错误。

闹意见的下载文件名

这是一个导出Excel的模块

BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
response.getOutputStream());
String reportName = request.getParameter("ReportName");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");

String tmp = "attachment;filename=" + reportName + ".xls" ;
response.setHeader("Content-Disposition", tmp);

Class c = Class.forName("createExcel.TableCreater") ;

TableCreater creater = (TableCreater)(c.getConstructor(HttpServletRequest.class).newInstance(request));

//导出Excel
HSSFWorkbook wb = creater.createTable() ;
wb.write(bufferedOutputStream) ;
bufferedOutputStream.flush() ;
bufferedOutputStream.close() ;


我像你保证,这个没有任何语法错误,但是该死的下载文件名就是不变,如果我要写固定,比如说写"aaa"就可以正常下载aaa.xls文件,但是我要用reportName,就不起作用。这很让人抓狂。

真正的原因在这里:如果我要用字母的话不是乱码,浏览器可以辨认,但是如果要换成reportName里的汉字,由于忘记了编码转换,所以是乱码,乱码就不认,不认就会造成它自己再找一个名字的神奇结果……


循环,又见循环

while(rs.next()){
OrginRecord tmpRecord = initOrginRecordDto(rs);
res.put(tmpRecord.generatUniqueKey(), tmpRecord) ;
}//END WHILE


这个循环没有任何语法错误,它只有一点不好,循环很多次的时候会慢的要死,原因在于,循环的时候,是要从数据库那边取出一条记录的,这样在网络上会浪费大量的时
间。修正它的办法也很简单,让它一次性多取一些。
rs.setFetchSize(FETCH_SIZE) ;


神奇的FLASH点击问题

这个问题没有代码,问题大概是这样的:写了 一个FLASH,这个FLASH在接受点击的时候调用网页上的一个JS函数,在服务器上实验的没有任何问题,但是到了单独的网页上就不管用了,各种浏览器都不行。后来发现了原因所在:单独网页的版本等于是FALSH访问本地文件,安全设置直接就屏蔽掉了点击这个动作,解决办法是在控制面板里设置FLASH PLAYER的信任位置,添加文件的位置到信任位置。顺利解决

easyUi在IE6下的select穿透问题

$('#dailog').dailog(options).data().window.shadow.append('<iframe width="100%" height="100%" frameborder="0" scrolling="no"></iframe>');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: