1、通过参数拼接的方式
127.0.0.1:8082/app/exam/addPaperRecord?paperRecord.epId=95&paperRecord.replyTime=180&paperRecord.cusId=861&paperRecord.type=1&paperRecord.testTime=15&optype=0&paperRecord.subjectId=1&paperRecord.id=333&record[0].pointId=1&record[0].qstType=1&record[0].userAnswer=A&record[0].qstIdsLite=132&record[0].score=50&record[0].answerLite=B&record[1].pointId=1&record[1].qstType=1&record[1].userAnswer=A&record[1].qstIdsLite=128&record[1].score=50&record[1].answerLite=D&record[2].pointId=1&record[2].qstType=2&record[2].userAnswer=A,B,C&record[2].qstIdsLite=103&record[2].score=50&record[2].answerLite=CD
接口接收
@RequestMapping("/addPaperRecord")
@ResponseBody
public Map<String ,Object> addPaperRecord(
@ModelAttribute("paperRecord") PaperRecord paperRecord,
@RequestParam(required = true) String optype,
QuestionRecordForm questionRecordForm){
// todo
}
集合或数组(前台这样称)如下:
@Data
@EqualsAndHashCode(callSuper = false)
public class QuestionRecordForm {
private List<QuestionRecordBean> record;
}
2、通过json串的方式
前台请求:127.0.0.1:8082/app/exam/saveOrUpdatePaperRecord 方式:post
请求体:
{
"paperId": 11,
"replyTime":180,
"userId":861,
"paperType":1,
"testTime": 180,
"subjectId":1,
"paperRecordId":28,
"opType": 0,
"record":[
{
"pointId":1,
"qstType":5,
"userAnswer": "租入包装物支付的押金,为职工垫付的款项,公积金",
"qstIdsLite":17,
"score":30,
"answerLite":"租入包装物支付的押金;为职工垫付的款项;公积金"
},{}
]
}
接口请求使用@RequestBody进行接收
@RequestMapping("/saveOrUpdatePaperRecord")
@ResponseBody
public Map<String, Object> saveOrUpdatePaperRecord(
@RequestBody ExamRecordRq examRecordRq) {
// todo
}
参数请求实体
@Data
public class ExamRecordRq {
/**
* 试卷id
*/
private Long paperId;
/**
* 试卷考试时间
*/
private int replyTime;
/**
* 用户id
*/
private Long userId;
/**
* 试卷类型
*/
private int paperType;
/**
* 用户测试时间:单位 秒
*/
private int testTime;
/**
* 科目id
*/
private Long subjectId;
/**
* 当前用户试卷记录id
*/
private Long paperRecordId;
/**
* 试卷提交方式 0-交卷 1-下次再做或者临时保存
*/
private String opType;
/**
* 试卷小题集合
*/
private List<QuestionRecordBean> record;
}
两种方式我更喜欢第二种的json方式提交