问题 :前台页面使用Ajax请求的时候,需要修改页面的部分属性,所以在后台使用了modelMap绑定了属性,测试发现前台页面无法获取。
ajax.json('${ctxPath}/getTourClassArrange.data', param, function(result){
$.each(result, function (n, obj) {
for(var loop=0; loop<obj.resultArr.length; loop++){
var id = obj.resultArr[loop].jieci;
$('#'+id).empty();
$('#'+id).append(obj.resultArr[loop].teacherName)
.append(" <input type='hidden' id='course"+id+"' value='"+obj.resultArr[loop].weekCourseId+"'>");
if(obj.resultArr[loop].courseState == '1'){
$('#'+id).css("backgroundColor","yellow");
}else if(obj.resultArr[loop].courseState == '2'){
$('#'+id).css("backgroundColor","red");
}
}
})
},null,false);
解决思路:
1. ajax主要是用来数据的交互和异步请求的,可以让网页实现异步更新,主要是数据的变更。
2.ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数
总结:
1. 单纯请求页面,不再使用ajax异步更新数据,直接通过model绑定数据,刷新页面的方式来实现页面数据展示的时候的变化(采用JSTL+EL表达式的方式加载页面)。
2. 通过Ajax请求后台,通过js的方式拼接页面,咱后异步加载的方式,状态的变更全部通过后台业务就行判断。