vue form 数字 或者 数字数组 后端“Cannot deserialize instance of `java.lang.Long` out of START_ARRAY token”无法转换
一、前端form提交到控制器为"{driver:[3],verkeId:[2,3]}",对象,其中数字均为数组,所以后端采用“Long”接收报错/** 司机ID */@Excel(name = "司机ID")private Long driverId;@PreAuthorize("@ss.hasPermi('transport:driverVehicle:add')")@Log(title = "
·
一、前端form提交到控制器为
"{driver:[3],verkeId:[2,3]}",对象,其中数字均为数组,所以后端采用“Long”接收报错
子组件弹出层返回表单,this.ids是el-table选中的id数组,所以赋给表单input的值是数组[3]
子弹出层
/**选择车辆*/
select(){
this.$emit("changeRelatedDriver",this.ids);
},
表单变量赋值
this.$set(this.form, 'vehicleIds', data);
/** 司机ID */
@Excel(name = "司机ID")
private Long driverId;
@PreAuthorize("@ss.hasPermi('transport:driverVehicle:add')")
@Log(title = "司机关联车辆信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TransportDriverVehicle transportDriverVehicle )
{
transportDriverVehicleService.insertTransportDriverVehicle(transportDriverVehicle);
return AjaxResult.success();
}
二、解决方案
在实体类新建ext1,接收前端form变量,接收后转换
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
addDriverVehicle({ext1:this.form.driverId,vehicleIds:this.form.vehicleIds}).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
});
},
private Long[] ext1;
/**
* 新增司机关联车辆信息
* @param transportDriverVehicle
*/
@Override
public void insertTransportDriverVehicle(TransportDriverVehicle transportDriverVehicle)
{
for(int i=0;i<transportDriverVehicle.getVehicleIds().length;i++){
transportDriverVehicle.setDriverId(transportDriverVehicle.getExt1()[0]);
transportDriverVehicle.setVehicleId(transportDriverVehicle.getVehicleIds()[i]);
transportDriverVehicle.setStatus("0");
transportDriverVehicle.setCreateTime(DateUtils.getNowDate());
transportDriverVehicleMapper.insertTransportDriverVehicle(transportDriverVehicle);
}
}
更多推荐
已为社区贡献6条内容
所有评论(0)