做的一个答题的功能:
有选项,和题目,用vue框架将选项和题目获取到了,
在选择下一题的时候将数据填充到map对象中。
将所有数据选择完毕后提交数据保存数据库。
在保存的过程中碰到了一些问题。
1.获取map对象的时候不加this获取不到数据= this.answers
2.传后台传不过去,map类型的数据我在网上按照方法找了很多种都传不过去。
3.没办法只能map转换成数组对象传入后台,折腾半天。[但是这个又增加了很多不必要的代码量,技术有限,先解决再说.]
var list=[]; //声明为一个对象,这是一个数组对象
var as=this.answers
for (var x of as) { // 遍历Map
var eval= new Object();
// alert(x[0] + '=' + x[1]);
//试卷题目id和试卷选项id
eval.EvalQuestionId=x[0];
eval.evalQnOptionId=x[1];
list.push(eval);
}
//发送ajax请求将数据保存下来
$.ajax({
type: "post",
url: "/custUser/examinationList2",
data:{"answerDto":JSON.stringify(list) },
success: function (result) {
// alert(result.data)
}
});
import lombok.Data;
@Data
public class AnswerDto {
//题目id
private String EvalQuestionId;
//选项id
private String evalQnOptionId;
}
@ResponseBody
@RequestMapping(value = "/examinationList2")
public Result examinationList2( String answerDto) {
// User user = (User) JSONObject.toBean(JSONObject.fromObject(request.getParameter("user")), User.class);
List<AnswerDto> array = JSON.parseArray(answerDto, AnswerDto.class);
Result re=new Result();
return re;
}