0.问题
后端可能出现的错误提示:
是不是一脸懵逼, 来, 我们来分析一下
settlementRuleList[0]settlementAmountType: 1这样的一个内容,结果传到后台时被解析成了settlementRuleList[0][settlementAmountType]: 1。
你没看错, 多了一个[ ],这就是被坑的地方 。
这时候SpringMVC不知道怎么封装对象中的数组对象, 然后报错了。很沙雕的操作。
1.表单结构
{
"orderStartTime":"2021-07-01 00:00:00",
"orderEndTime":"2021-07-15 23:59:59",
"taxRate":"6",
"commissionRuleType":"2",
"settlementRuleList":[
{
"orderMinNumber":"213",
"orderMaxNumber":"123",
"stepList":[
"24",
"36"
],
"settlementAmountType":"1",
"settlementAmountFee1":"100"
},
{
"orderMinNumber":"54678",
"orderMaxNumber":"87987",
"stepList":"36",
"settlementAmountType":"1",
"settlementAmountFee1":"100",
"settlementAmountFee2":"78"
}
],
"settlementBizConfigId":"60d2e59cc2c1d353ad882b14"
}
2.表单样式
3.问题解决
前端ajax请求, 需要注意的就是JSON.stringify(表单参数), 以及contentType传递json格式
$.ajax({
url:"../../settlementRuleConfig/update",
type: "POST",
data: JSON.stringify(formData),
dataType: "json",
contentType: "application/json",
success: function (data) {
if (data.code === 200){
$("#settlement_rule_config_list #data-table").datagrid('reload', $("#settlement_rule_config_list #tb > form").serializeJsonNotNull());
$.messager.show({title: '提示', msg: '操作成功!', showType: 'show'});
} else {
$("#settlement_rule_config_list #data-table").datagrid('reload', $("#settlement_rule_config_list #tb > form").serializeJsonNotNull());
$.messager.show({title: '提示', msg: data.message, showType: 'show'});
}
}
});
后端接口接收参数, 打上@RequestBody注解, 接收前端传递的json格式参数
@RequestMapping("/update")
public Result update(@RequestBody SettlementRuleConfigVo configVo){
log.info("【修改规则】表单参数:" + JSON.toJSONString(configVo));
return Result.OK();
}
4.处理后效果
版权声明:本文为weixin_43687353原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。