js null到java处理.

来源:互联网 发布:淘宝改价格会降权 编辑:程序博客网 时间:2024/06/16 12:57

昨日调试Tivoli Directory Integrator软件的脚本.从webservice里面读取数据写入到数据库里报错.

提示数据库字段长度不够,插入的数据长度超出允许值.

通过打印语句查看task.logmsg("@@@@@@@@@@@"+tmp+"#################");

发现打印出来的值是@@@@@@@@@@@00000000000000000000000000000000null#################.

36位?果然超过数据库限制的32位.最后那段null是怎么回事,看来问题出在null的处理上.

看来是自己写的jar出问题了.分析代码:

 

package timegeter;

 

public class Paddingzero {

 

public String Paddingzero(String is) {

StringBuffer sb = new StringBuffer();

String s = is;

int idlength = 0;

if (s == null) {

idlength = 0;

} else

idlength = s.length();

if (idlength < 32) {

for (int i = 0; i < 32 - idlength; i++) {

sb.append(0);

}

sb.append(s);   //看来问题出在这里了

//if (s != null) {

//sb.append(s);

//}

System.out.print(sb);

return sb.toString();

} else if (idlength > 32) {

sb.append(s);

for (int i = 0; i < idlength - 32; i++) {

sb.deleteCharAt(0);

}

System.out.print(sb.toString());

return sb.toString();

} else

System.out.print(is);

return is;

}

 

public static void main(String args[]) {

Paddingzero pz = new Paddingzero();

pz.Paddingzero("null");

 

}

}

代码主要去实现补零操作,对于不足32位的补成32位的,超过32位的去掉前面的零.
sb.append(s);null不是空,而是作为字符附加上去了.
修改成if (s != null) {
sb.append(s);
}解决.看来js去取值,发现为空,传递null给java.通过判断是否为空,进行处理.最后进行附加,null作为字符被附加上去.此处超出我的意料了.附加一个null,null却并不表示为空.导致取得的字符超出长度规定.
看来是对null理解不清晰导致的.万恶的null呀.