java后台返回前端数据的方式json,html 组装json的技术struts2-json-plugin,fast-json,Gson,手动拼接

	/**
	 * 后台返回返回数据有几种方式:
	 * 1. json
	 * 2. html
	 * 组装json的技术:
	 * 1.struts2-json-plugin
	 * 2.fastjson
	 * 3.Gson
	 * 4.手动拼接
	 * 
	 * */
	/**方式一:采用struts2-json-plugin解决:
	 * 1.首先在struts的xml文件中配置结果集,
	 * 并修改xml中的package标签extends="struts-default"
	 * 为
		2.默认把所有关联属性转成json格式的数据,比如User中有UserInfo,UserInfo中有User这样一直死循环造成内存溢出
		解决方法:在实体类对应关系的get方法上加上@JSON(serialize=false)
	*/
/*	public String findMangerByDeptId1(){
		//根据部门id查找部门的领导
		List userList = userService.find("from User where dept.id = ?", User.class, new String[]{deptId});
		//放入值栈,struts2-json-plugin会自动从root栈取值
		super.push(userList);
		//返回值
		return "json";	
	}*/
	/**
	 * 方式2:fastjson解决
	 * 在实体类对应关系的属性上面加上@JSONField(serialize=false),防止内存溢出
	 * @throws Exception 
	 * */
/*	public String findMangerByDeptId2() throws Exception{
		//根据部门id查找部门的领导
		List userList = userService.find("from User where dept.id =?", User.class, new String[]{deptId});
		//采用fastjson转成json数据
		String result = JSON.toJSONString(userList);
		//我们需要手动返回json数据
		
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setCharacterEncoding("UTF-8");
		response.getWriter().write(result);
		//返回值
		return NONE;	
	}*/
	
	/**
	 * 方式三:html方式解决
	 * */
	public String findMangerByDeptId() throws Exception{
		//根据部门id查找部门的领导
		List userList = userService.find("from User where dept.id =?", User.class, new String[]{deptId});
		//拼接数据
		String result = "";
			for (User user : userList) {
				result+="";
			}
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setCharacterEncoding("UTF-8");
			response.getWriter().write(result);		
		return NONE;	
	}


//前台接收

你可能感兴趣的:(java后台返回前端数据的方式json,html 组装json的技术struts2-json-plugin,fast-json,Gson,手动拼接)