问题描述
前端
前端通过post方式提交了对象
{
"isTop": 0,
"img_title": "撒打发士大夫",
"author": "阿发送达方式大",
"title": "按时发大水",
"img_src": "files\\addIndexBanner\\2023-05-20\\20230520115853874.jpg",
"content": "<p>发沙发撒地方</p>",
"releaseDateTem": "2023-05-20 11:58:57",
"status": "1"
}
后端
后端通过使用BufferedReader 的readLine方法将参数读取,并调用JSON.parseObject方法将其解析为Banner类型的对象
BufferedReader br = req.getReader();
String params = br.readLine(); //json字符串
//转为Brand对象
Banner banner = JSON.parseObject(params, Banner.class);
错误
- 后端的params 可能根本拿不到,全部参数为空
- 后端的params 中部分字段为null,拿不到
解决
下面两项依次检查
如果全部字段为空
前端需要将JSON转为JSON字符串
var myData = {
//是否置顶,默认否,0
isTop:0,
};
myData.img_title = $("#img_title").val();
myData.author = $("#author").val();
myData.title = $("#title").val();
myData.img_src = $("#imgSrc").val();
myData.content = content;
myData.releaseDateTem = $("#releaseDateTem").val();
// 0 草稿,1发布
myData.status = type;
console.log(myData);
x = JSON.stringify(myData)
注意 x = JSON.stringify(myData)
,此时你在提交x即可
如果部分字段为空
你需要检查你的pojo类,按照我上面的代码来说,应该检查Banner
类,看看类中是否给所有的字段都生成了setter和getter,一般是有的字段没有生成造成的。