
SpringMVC控制层接收前端多个参数
报错I/O error while reading input message; nested exception is java.io.IOException: Stream closed
【Controller】
@PostMapping("/list")
public Result> list(@RequestBody ReviseInfo reviseInfo, @RequestBody ReviseRequest reviseRequest){
return reviseAdaptor.list(reviseInfo, reviseRequest);
}
【ReviseInfo】
@Data
public class ReviseInfo {
@MongoId
private String id;
private String subjectId;
private String versionId;
private String fragOri;
private String fragFixed;
private Integer type;
}
【ReviseRequest】
@Data
public class ReviseRequest {
private List data;
}
传参
{
// 当前稿件ID
"subjectId": "5f4b7a6cc04e43398921421aef8b77a2",
// 纠错内容列表
"data": [
{
"content": "宁厦的好时机历案打算沈查"
}
]
}
报错I/O error while reading input message; nested exception is java.io.IOException: Stream closed
解决方案
1、创建新的数据传输对象,如ReviseDTO,将需要的参数合并放入一个DTO
【ReviseDTO】
@Data
public class ReviseDTO {
private String subjectId;
private List data;
}
【Controller】
@PostMapping("/list")
public Result> list(@RequestBody ReviseDTO reviseDTO){
return reviseAdaptor.list(reviseDTO);
}
2、使用Map
【Controller】
@PostMapping("/list")
public Result> list(@RequestBody Map params){
return reviseAdaptor.list(params);
}
【Adaptor/serviceImpl】
import org.apache.commons.collections4.MapUtils; String subjectId = MapUtils.getString(params, "subjectId"); Listdata = (List )MapUtils.getObject(params, "data"); // List data = (List )params.get("data");
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)