今天做毕设时遇到一个前端传送数据的问题,如下:
属性值为null,属性数据库报错。
前端传输的对象为:
后端对应的pojo:
前端有对应的对象属性输出:
后端接收却为空:
路径和请求参数都是一一对应的,没有出错。因为上面用同样的方式写了一个接口却有参数生成,所以让我很纳闷。但是后面一一排查后,发现是使用了@Data的原因,但是前面成功的接口也用了却能够传递参数,属实离谱。后面将@Data去掉改成手敲的set,get方法;就能调用成功了
这样后端就能接收前端对象里的属性值了,神奇。到这里也发现了使用手写的set,get与@Data自动生成的set,get在方法名上有点不一样,就是在p中@Data使用了大写。不知道是不是这里的原因。如果要用@Data的话,应该最好以后加上一个_符号,如:p_name,这种形式,就不会报错了。估计是传到后端取值的方法不一致导致取值为空的。