问题现象
前端明明传了字段, 但后端就是接收不到!!!
但是同对象的其他字段都能接收到
我接收不到数据的字段是vA vC vE
经过一番查阅后, 得知!
JavaBean有个规范说明如何从set get方法推导出字段名的
举个例子
普通的字段比如是 name, 那他的set get就是 setName, getName : 首字母大写
第二个举例字段 vA : 当第一个字母小写, 第二个字母大写时, set get 就是 setvA getvA
这时首字母不再大写了 ! 对于字段名不做处理 直接在前面加set get
字段值接收不到的原因
项目中使用的是lombok, lombok生成setget的方法没有按照规范, 对于vA 生成了setVA(进行了首字母大写操作), lombok中也有针对此问题的issues
而SpringMVC解析参数时是按照规范的 即 setvA
现在两个set方法对应不上了, 而SpringMVC没有找到 需要的方法, 就无法完成赋值了
所以字段就没有值了!!!
解决方法
手动重写set get方法 使用满足规范即可
idea的set get 生成的是满足规范的, 可以针对这些字段 使用idea自动生成下