`
jhyimu2005
  • 浏览: 186057 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
社区版块
存档分类
最新评论

在js中获取后台封装的json数据

阅读更多
在项目中想添加一个select 它的值是从数据库中动态获取的,之前一直是把数据放到session中,可运行的结果总是不理想,因为我的页面是静态的,只有我每次重新打开一个浏览器后它才会为session重新赋值。
在同事的帮助下,动态的为select赋值,即在每次弹出dialog时动态为select赋值,其中的值是后台从数据库中取出封装为json数据传输过来的。
后台封装Json格式的数据函数:
@RequestMapping
	public void getProjectsByUser(HttpServletRequest request, HttpServletResponse response) {
		
		User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
		
		Set<Project> finalCanAddProjects = userService.getCanRegProjects(user);
		
		StringBuilder jsonBuilder = new StringBuilder("{list:[");
		int i = 0;
		
		for (Project project : finalCanAddProjects) {
			i++;
			jsonBuilder.append("{");
			jsonBuilder.append("id:'");
			jsonBuilder.append(project.getId());
			jsonBuilder.append("', ");
			jsonBuilder.append("name:'");
			jsonBuilder.append(project.getName());
			jsonBuilder.append("'");
			jsonBuilder.append("}");
			jsonBuilder.append(i == finalCanAddProjects.size() ? "" : ",");
		}
		jsonBuilder.append("]}");
		MessageUtils.outputJSONResult(jsonBuilder.toString(), response);
	
	}

在js中接受此数据:

function getProjectsByUser() {
	
	$.getJSON(path+"/bio/studymanager/getProjectsByUser.do?dateTime=" + (new Date()).getTime(),
			function(json) {
				var options = "";
				$.each(json.list, function(i, n) {
					options += "<option value='"+n.id+"'>"+n.name+"</option>";
				});
				$('#projectIdSelect').html(options);
			}
	);
}


$.getJSON的api:http://www.iebe.cn/temp/jQuery_API/source/
$.getJSON.html

在$.getJSON(path+"/bio/studymanager/getProjectsByUser.do?dateTime=" + (new Date()).getTime(),之所以加时间参数,是为了防止浏览器缓存,如果不加此时间参数,当你第二次请求时浏览器就默认为数据没什么改变,而不进行请求。

function getStudyById(id, name, projectId, status, description) {
	
	$('#studyId').val(id);
	$('#studyName').val(name);
	$('#studyStatus').val(status);
	$('#studyDescription').val(description);
	
	getProjectsByUser();
	
	$('#projectIdSelect option').each(function(){
		if ($(this).val()== projectId) {
			$(this).attr('selected', 'selected');
		}
	});
	
	$('#manageStudyDialog').dialog(manageStudyDialog);
	$('#manageStudyDialog').dialog('open');
}



6
0
分享到:
评论
4 楼 JavaLike 2012-03-12  
其实不需要拼JSON数据的,直接用个map就好了,项目的ID就是ky,项目的name就是value然后直接用JsonObject.fromObject(map).toString()就可以了,前端js里面直接循环处理就好了
$.post(path + "/bio/studymanager/getProjectsByUser.do?dateTime=" + (new Date()).getTime(),  ,
function(data) {
if (isEmpty(data)) {
$('#projectIdSelect').html("");
return;
}

data = eval("(" + data + ")");
var options = "";
$.each(data, function(key, value) {
if (!isEmpty(name) && value == name) {
options += "<option value='"+key+"' selected='selected'>"+value+"</option>";
} else {
options += "<option value='"+key+"'>"+value+"</option>";
}
})

$("#projectIdSelect").html(options);
}
)
3 楼 shanxmxj 2010-09-16  
jhyimu2005 写道
不好意思,前一段时间请假,没有及时回复,用的是hibernate+Spring3.0

呵呵~谢谢!!
2 楼 jhyimu2005 2010-09-14  
不好意思,前一段时间请假,没有及时回复,用的是hibernate+Spring3.0
1 楼 shanxmxj 2010-08-13  
请问你这是用的什么框架?
struts1?

相关推荐

    echartsJava后台封装数据

    标题“echartsJava后台封装数据”暗示我们要讨论的是如何在Java后端处理并封装数据,以便于ECharts在前端进行渲染。在SpringMVC这个流行的轻量级Java Web框架中,我们可以利用其控制器(Controller)、模型(Model)...

    Revit导出Json数据

    在Revit中,将数据导出为Json格式能够方便地与其他系统进行数据交互,如数据分析、可视化或Web应用程序。 Revit导出Json的过程涉及以下几个关键知识点: 1. **Revit API**:Revit提供了一套强大的API(Application...

    ExtJs学习资料22-从服务器获取JSON数据并分页处理.doc

    在本篇ExtJs学习资料中,我们探讨了如何从服务器获取JSON数据并进行分页处理。这是一项在Web应用程序中非常常见的任务,特别是在构建数据密集型界面时。下面我们将详细阐述实现这一功能的关键步骤和涉及的技术点。 ...

    springmvc3+json参数传递后台接收json参数

    综上所述,"springmvc3+json参数传递后台接收json参数"涵盖了Spring MVC 3中处理JSON数据的核心概念和实践方法,包括JSON数据格式、`@RequestBody`注解、前端JSON数据封装、批量处理、错误处理和配置支持等方面的...

    将集合转换为Json的相关jar包

    在Java等编程语言中,将集合转换为JSON格式对于实现AJAX(Asynchronous JavaScript and XML)数据的读取至关重要,因为AJAX允许页面在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。 在Java中,要将...

    echarts后台封装(java)

    在IT行业中,ECharts是一款非常流行的、基于JavaScript的数据可视化库,它由百度开发并开源,提供了丰富的图表类型和强大的交互功能。本项目专注于ECharts在后台的封装工作,特别是使用Java语言来完成这一过程。这样...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    在这个"extjs动态表格实例"中,我们将探讨如何使用ExtJS封装Grid并从Struts2框架的后台获取数据。 首先,让我们了解ExtJS中的Grid组件。Grid是ExtJS的一个关键组件,它用于展示结构化数据,并支持多种操作,如排序...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本教程将详细阐述Android客户端如何使用JSON进行数据交互,包括...

    JSON:javaWeb后台JSON的封装包---源码

    由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。 String,Number 和 Boolean ...

    echart后台获取数据实例

    在“echart后台获取数据实例”中,我们将探讨如何从后台获取数据并将其用于 ECharts 图表的展示。 首先,`EntityController.java` 可能是 Spring MVC 或其他类似框架中的控制器,负责处理HTTP请求并提供数据。在...

    JavaScript-初识ajax、ajax封装、及json简单实战案例(下).pdf

    JSON格式与JavaScript对象语法非常相似,因此在Ajax中广泛用于传递数据。例如,一个简单的JSON对象可能如下所示: ```json { "name": "John", "age": 30, "city": "New York" } ``` **3. Ajax封装** 为了减少...

    JSON:javaWeb后台JSON的封装包--源码实例

    由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。 String,Number 和 Boolean ...

    json封装的工具类,提高代码的健壮性和复用性能

    通过封装JSON工具类,开发者无需在每个需要处理JSON的地方都导入和使用JSON库,降低了各模块之间的依赖性。同时,工具类的更新和优化不会影响到其他代码,提高了代码的可维护性。 6. **异步请求功能** 异步请求...

    【图解+源码】前后台数据交互,方便纯前端程序员了解后台服务器处理

    通常,数据以JSON(JavaScript Object Notation)格式在前后台之间传递,因为JSON易于读写,且兼容性好。 现在,我们关注“前后台”标签以及文件名“前后台交互:html+servlet.png”。Servlet是Java Web开发中处理...

    ztree插件前台和后台数据交互

    2. **后台数据获取**:在Java环境中,我们可以使用Spring MVC或Servlet来处理HTTP请求,通过Controller返回JSON数据。例如,创建一个RESTful API,接收前端的请求并返回ZTree所需的JSON数据: ```java @GetMapping(...

    Ajax+JSON 提交数据的演示

    在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术和JSON(JavaScript Object Notation)的结合,已经成为一种高效、灵活的数据交互方式。本教程将深入探讨如何利用Ajax和JSON来改进传统的HTML表单数据...

    json实现三级联动下拉框---struts版(数据来自mysql数据库)

    在本项目中,"json实现三级联动下拉框---struts版(数据来自mysql数据库)"是利用JSON来处理省市县三级联动效果的示例,它通过Struts框架与MySQL数据库进行交互,动态地从数据库获取数据并更新到前端页面的下拉框中...

    java返回json数据与ios/安卓数据传输

    在IT行业中,跨平台的数据传输是一项常见的任务,特别是在移动应用开发中,如iOS和Android与后端服务器的交互。本文将详细讲解如何使用Java作为后台语言来构建返回JSON数据的接口,以供iOS和Android客户端进行数据...

    json-servlet-ajax

    在Web开发中,JSON常用于后端服务器与前端客户端之间的数据交互,尤其是在AJAX(Asynchronous JavaScript and XML)技术中。 标题“json-servlet-ajax”暗示了我们讨论的重点是关于JSON如何在Servlet和AJAX之间进行...

Global site tag (gtag.js) - Google Analytics