java开发中的那些事(6)------一次ajax调用中的问题
这个周末就要到这次开发任务的结尾了。只是也到这时候了,才发现用起来比較顺手了。前几次项目中也有过啊。说起来实实在在用过的才3个项目,就分别用了不同的。着实有些痛苦啊,初学阶段的jsp+servlet还算是初学,可这后面的loushang和ssh2是让我欢喜让我忧啊,高兴的是框架的魅力让我不由自主,可这种框架我啥时候才干自己组的那么完好,甚至如今用起来还磕磕绊绊的。总结下这次的大收获的话。一方面是这个框架,还有一方面的话就是ajax和json了,这个在我来说是比較陌生的地方,尽管如今我能够用,但原理上还是有些迷糊。是那种有些明确,但不贯通的感觉,还是好好努力吧,加油。
这篇记录是在家里写的。在公司里编写的代码已经记不清所有了,写一下部分代码吧:
$.ajax({ url:"getDataBtf.action", data:"id="+$("#btfId").val()+"&&location="$("#btfLocate").text(), success:function(){ } })大致能想起来的就这些了,这个下午在这个地方磕了好几次。这样来罗列下绊脚的地方
1、这个地方的“,”是逼疯人的节奏啊,喜欢复制过来再改动的毛病总会多出那么一个“。”:杯具啊;
2、$("#btfId")这个地方的意义就是document.getElementById("btfId")嘛,获取dom对象,我一直都这么记,可还是常常忘记“#”,有点悲催;
3、这个地方的location是中文的。在后台開始的时候总是获取不到,让我是苦不堪言啊;
4、val()和text(),在text和select中能够用val()。这应该属于jquery的范畴了
解决的方法:
1+2:这两个还真就没办法。细心+小心,不行就重来,反正错了的话结果就那么明显;
3:当时我用encodeURI()来解决的。今天回来搜下后发现escape()和encodeURIComponent()
大致原理的话:
encodeURI()函数默认採用的UTF-8编码,然后在jsp中再经过页面本身的编码后传递给server,传递给后台,而后台在调用getParamter()方法时。server会对对应的数据先解码urlDecode一次后,然后再依据server端对应的url转码方法进行一次转码,所以说这个地方是须要两次转码的
至于其它两个。还没实用过,不敢妄下定论啊
4、这个是在进行赋值的时候发现的,结果在传递的时候又出现了
("#btfLocate").text(data[1]); ("btfId").val(data[0]);val()貌似仅仅有对text和select中实用,就像document.getElementById("一个text").value;而document.getElementById("一个div")的innerHTML这个不同是一样一样滴啊
我始终相信时间的苦难是定数的。你開始痛苦了,后面总会顺风顺水,我还是菜鸟。我还在飞..