JSON怎么输出前台界面

J2EE 码拜 6年前 (2015-10-16) 704次浏览
这是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,运行效果如下

JSON怎么输出前台界面

怎么回事,怎么样改正才好。

解决方案:40分
 public String getJson(List list,int num){   这句代码的上面加个@ResponseBody 
解决方案:20分
dataType类型未设置成json

解决方案:20分
在响应的contorller上加@ResponseBody,传入到JS上面的数据就是json格式的。直接在页面显示就可以了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明JSON怎么输出前台界面
喜欢 (0)
[1034331897@qq.com]
分享 (0)