问题遇到的现象和发生背景
SSH项目中我从前端ajax中传递的数据,后端如何接收
问题相关代码,请勿粘贴截图
Struts配置文件配置
<action name="scores" method="execute" class="com.matrix.test.scores.action.ScoresAction">
<result name="success" type="json">
<param name="root">returnMap</param>
</result>
</action>
Action编写
@Override
public String execute() {
pageList.setPage(page);
pageList.setPageSize(pagesize);
String result = "success";
String operateFlag = super.getRequest().getParameter("operateFlag") == null ? ""
: super.getRequest().getParameter("operateFlag");
try {
if ("getdatapagelist".equals(operateFlag)) {
// 获取list
String seacherinput = super.getRequest().getParameter("seacherinput") == null ? ""
: super.getRequest().getParameter("seacherinput");
String subjectId = super.getRequest().getParameter("subjectId") == null ? ""
: super.getRequest().getParameter("subjectId");
seacherinput = URLDecoder.decode(seacherinput, "UTF-8");
dao.getDataPageList(pageList, seacherinput, subjectId);
returnMap.put("total", pageList.getCount());
returnMap.put("rows", pageList.getDataArray());
}
else if ("exportExcelCMS".equals(operateFlag)) {
List list = new ArrayList();
list = dao.importData();
String[] titleArr = new String[]{"所在班级","学生姓名","科目","成绩"};
String[] columnArr = new String[]{"gradename","stuname","subname","score"};
String messages = "";
try {
messages = excelDAO.dataExport("学生成绩查询",titleArr,"学生成绩查询",columnArr,list);
} catch (Exception e) {
e.printStackTrace();
}
returnMap.put("flag", messages);
}
else if ("download".equals(operateFlag)){
forward="download";
}else if("updateData".equals(operateFlag)) {
System.out.println("&&&&&&&&&&&&&&&");
System.out.println(scoresPo.getScore());
returnMap.put("status", "success");
}
}catch (Exception e) {
e.printStackTrace();
}
return result;
}
前端JS编写
//定义对象数组,放置编辑之后的行数据
var scoreList = []
var rows = $("#maindatagrid").datagrid("getRows"); //获取所有行
for (var i = 0; i < dataList.length; i++) {
$("#maindatagrid").datagrid('endEdit', dataList[i]);
//通过行号获取行数据
var row = rows[dataList[i]];
scoreList.push(row);
}
var json = JSON.stringify(scoreList); //转化为Json数据类型
console.log(json)
$.ajax({
url : "<%=request.getContextPath()%>/scores?operateFlag=updateData", // 数据发送方式
type : "post", // 接受数据格式
dataType : "json", // 要传递的数据
data : {data:json},
success : function(data) {
if (data.status == "success") {
$("#guanbimodal").click();
layer.msg('修改成功', {
icon : '1'
});
$('#maindatagrid').datagrid('reload');
} else {
layer.msg('修改失败', {
icon : '2'
});
}
}
});
运行结果及报错内容
后台不知道如何接收参数
我的解答思路和尝试过的方法
JSON对应数据
[
{
"gradename": "五班",
"score": "81",
"student_id": "",
"stuname": "富荔",
"subject_id": "",
"subname": "数学"
},
{
"gradename": "五班",
"score": "81",
"student_id": "",
"stuname": "富荔",
"subject_id": "",
"subname": "历史"
}
]
我想要达到的结果
后端如何接收到我传递过来的数据