首先是页面,页面简单的画出来是这一种
我需要把用户Id和该用户的对应一行的值传到后台保存到数据库中。
<table id="mainTable" style="width: 750px; overflow: scroll;" >
<tr>
<td>用户名</td>
<c:forEach items="${subjectNumberList}" var="subjectName">
<td colspan="2">${subjectName }</td>
</c:forEach>
</tr>
<c:forEach items="${testRecordList}" var="testRecord" varStatus="i">
<tr>
<td>${userList[i.index].name }<input type="hidden" value="${userList[i.index].userId }"/></td>
<c:forEach items="${subjectScoreList}" var="subjectScore">
<td>${subjectScore}</td>
<td><input type="text" style="width: 30px;"
numberbox="true"
data-options="required:true,validType:'length[1,4]'"
οnblur="validateScore(${subjectScore},this)"
class="easyui-validatebox"/>
</td>
</c:forEach>
</tr>
</c:forEach>
</table>
这个是绘制表格的一些代码,我要遍历表格的每一行的input的值;然后写成json对象传到后台,在后台进行处理。
function saveCredits(){
var dataJson="[";
var userId = "";
var subjectScore = "";
$("#mainTable tr").each(function (index, domEle){// mainTable 下的tr
userId = "";
subjectScore = "";
if(index != 0){//遍历除去第一行的之外的所有input作为json数据传入后台
$(domEle).find("input").each(function(index,data){
if(index == 0){
userId = $(data).val();
}else{
if($(data).val() != "" && $(data).val() != null){//如果没有输入的情况下传的值是0
subjectScore += "," + $(data).val();
}else{
subjectScore += "," + 0;
}
}
});
if(!subjectScore.indexOf(",")){
subjectScore = subjectScore.substring(1);
}
dataJson += "{"+"\"userId\":\""+userId+"\","+"\"subjectScore\":\""+subjectScore+"\"},";
}
});
if (dataJson.lastIndexOf(",")) {
dataJson = dataJson.substring(0,dataJson.length -1);
dataJson += "]";
}
var testId = "${test.testId}";
$.ajax({
type: "POST",
url: "action",
data:{
data : dataJson,
testId : testId
},
success: function(result){
if (result.success){
$.messager.alert('成功提示',result.msg,"info",function(){
window.opener.doAction("****","../controller/url");//实现页面成功之后的跳转
window.close();
});
}else{
$.messager.alert('错误提示', result.msg,"error");
}
}
});
};
在后台接收处理json
public PageResult<Object> teacherStudyassessSave(
@RequestParam(value = "data", required = true) String data,
@RequestParam(value = "testId", required = true) String testId){
PageResult<Object> pageResult = new PageResult<Object>(); /* 定义返回对象 */
JSONArray jsonArray = JSONArray.fromObject(data); /* 定义解析json数组数据对象 */
Map<String,String> userSubjectScoreMap = new HashMap<String, String>(); /* 定义Map集合 */
List<String> userIdList = new ArrayList<String>(); /* 定义List集合 */
/*
* 循环json数组对象取出数据,放入Map中
* 循环json数组对象取出用户数据,放入List中
*/
for(int i = 0; i < jsonArray.size(); i++){
userSubjectScoreMap.put(jsonArray.getJSONObject(i).getString("userId"),jsonArray.getJSONObject(i).getString("subjectScore"));
userIdList.add(jsonArray.getJSONObject(i).getString("userId"));
}
}
后面就可以对传来的值进行一系列的处理和对数据库操作。
下次可能用到的:遍历表格,拼接json串,后台对json的处理;这个只是感觉json方便一点。
绑定bean的话就是照着传入参数,截取字符串就可以了。然后就可以对对象进行操作。