这是Controller的代码
@RequiresPermissions("expertinfo:expInfo:view")
@RequestMapping(value="init")
public void init(HttpServletRequest request,HttpServletResponse response){
List<ExpInfo> expInfos = expInfoService.getRandom(request.getParameter("all")==null?"":request.getParameter("all"));
/* 设置格式为text/json */
response.setContentType("test/json");
/* 设置字符集为'UTF-8' */
response.setCharacterEncoding("UTF-8");
try {
PrintWriter write = response.getWriter();
write.write(getJson(expInfos, 10));
write.flush();
write.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getJson(List list,int num){
JSONArray jsonArray = new JSONArray();
JSONObject jsonDate = new JSONObject();
for(int i = 0 ; i < list.size() ; i++){
Object object = list.get(i);
//将对象转换为JSON字符串
jsonArray.put(JsonMapper.toJsonString(object));
}
jsonDate.put("total", num);
jsonDate.put("list", jsonArray);
return jsonDate.toString();
}
以下是javascript的代码
Ext.Ajax
.request({
url : "ExpInfoController/init",
success : function(response, option) {
var jlist = eval('(' + response.responseText + ')');
for ( var i = 1; i < 11; i++) {
document.getElementById(i.toString() + "1").innerHTML = jlist.list[i - 1].expId;
document.getElementById(i.toString() + "2").innerHTML = jlist.list[i - 1].expName;
document.getElementById(i.toString() + "3").innerHTML = jlist.list[i - 1].expSex;
document.getElementById(i.toString() + "4").innerHTML = jlist.list[i - 1].expAge;
document.getElementById(i.toString() + "5").innerHTML = jlist.list[i - 1].categoryName;
document.getElementById(i.toString() + "6").innerHTML = jlist.list[i - 1].expRemark;
if (jlist.list[i - 1].check == 1)
document.getElementById(i.toString()).checked = true;
}
}
});
我也引入了ext-all.js和ext-base.js
但是在输出前台界面的时候,直接输出了JSON的字符串,根本就没走这个javascript,运行效果如下
新手求解答是怎么回事,如何改正才好。
------解决思路----------------------
public String getJson(List list,int num){ 这句代码的上面加个@ResponseBody
------解决思路----------------------
dataType类型未设置成json
------解决思路----------------------
在响应的contorller上加@ResponseBody,传入到JS上面的数据就是json格式的。直接在页面显示就可以了