先说第一个,根据ID查询数据表,可以得到实体对象,我用这个对象来得到它的一个属性,代码如下:
long a=Object.method();//这个方法返回的是Long类型
结果报了一个空指针异常,我第一个感觉就是Object会不会是空的,然后用了if来判断。可是还是报空指针,同事说了一句话,让我豁然开朗,代码修改如下:
Long a=Object.method();
我错就错在如果返回的Long类型是一个Null值,那么它在自动解包的过程中必定会报一个空指针异常!以前在efftive java中文版上看到过这样一句话:基本类型优于装箱基本类型。我想自己现在是很明白这句话了,因为吃到了苦头,呵呵。。
第二个是通过ajax把数据表里面的数据查出来,给一个form表单赋值,因为有些得到的是null值,它们的类型是Date类型,所以在后台很难处理,我用javascript写了一段代码:
var s=document.getElementById("date");
if(s.value==null){
s.value="";
}
看似没错,事实上我一直认为自己这样写是正确的,在重启tomcat好几次,以及删除缓冲之后,结果还是依旧。最后又是同事指点了我。代码修改如下:
最上面一行是一样的。
下面只要改成
if(s.value=="null"){
s.value="";
}
OK。。原因是在于此时的null是作为一个字符串来处理的,这个和java还是有些区别的。
参加工作已经有一段时间了,最近这几天,主管叫自己也写了一些jsp页面,以及后台处理的代码。这东西真的是熟能生巧,有一阵子没写,忘得真快。真希望自己能快点成长吧!!