发送时:前端js使用的serialize();方法必须和后台服务器类型匹配。一个很神奇的地方,前端form.serialize();必须和后台服务器类型匹配,如果匹配失败,错误竟然是显示在浏览器的console中的。报错代码为400。
接收时:如果接收后台的一个对象A(是某种自定义Class),A中有abc变量与BCA变量,get与set方法都是由ide自动生成。
public class A {
private String abc;
private String BCA;
public String getAbc() {
return abc;
}
public void setAbc(String abc) {
this.abc = abc;
}
public String getBCA() {
return BCA;
}
public void setBCA(String bCA) {
BCA = bCA;
}
}
我们将A对象从后台用ajax传到前端去。
$.ajax({
"url":"../illness/findIllness.do",
"type":"GET",
"data":data,
"dataType":"json",
"success":function(obj){
var A = obj.data;
$("#BCA").val(A.BCA);
});
此时A.BCA在前端为空,浏览器console测试为undefined。
我发现在js代码中,直接使用A.abc 是调用A.getAbc()方法。这个方法很机械。如果是BCA变量的话,自动生成get方法后,仍是getBCA();js就会识别错误。我没有考证,但是可以猜测到,js代码是调用的getbCA();方法。
这就导致一大堆专业用语简写需要小写。谨记啊,带着数据库一起改真的痛苦要死。
其实改了get方法就好,但是我觉得自动生成的扩展性更高,以后如果忘了,工作量还是不小。干脆直接带着数据库改了。