`
jhyimu2005
  • 浏览: 181603 次
  • 性别: 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?

相关推荐

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

    这是一个 spring mvc 框架 封装了 前台表单转成json数据 传递到后台 控制层 接收 json 数据,可以支持批量添加数据的功能。

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

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

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

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

    Android解析相同接口返回不同格式json数据的方法

    但是封装的框架是基于后台数据格式不会改变的情况,一旦后天返回的数据产生了变化,网络解析就会发生错误。 问题产生位置 所有设计到微信和支付宝两种支付方式共存的地方。 分析 当请求接口时支付宝返回的json如下...

    Layui数据表格 前后端json数据接收的方法

    先上效果图: 前端数据表格: &lt;&#37;-- 数据表格 --%&gt; lay-filter=test&gt; &lt;thead&gt;

    利用js实现前后台传送Json的示例代码

    get()方法是从服务器获得数据,其主要参数就是获得后台请求地址,以及负责处理的回调函数: $.get(URL,callback); $(button).click(function(){ $.get(demo_test.php,function(data,status){ alert

    以JSON形式将JS中Array对象数组传至后台的方法

    通常情况下我们会获取所选取行对象的ID,通过循环及简单封装拼凑成一个长String传送过去,并在Service层解释再通过findByID获取实例并update 但今次我们需要将整个对象群完整的传输至后台 其结构如下   选用谷歌...

    PHP以json或xml格式返回请求数据的方法

    json格式返回数据比较简单,直接将我们后台获取到的数据,以标准json格式返回给请求端即可 //按json格式返回数据 public static function json($code,$message,$data=array()){ if(!is_numeric($code)){ return '...

    Jquery+ASP.NET+MVC实现搜索建议

    1:代码使用的是ASP.NET MVC ...3:仿百度搜索下拉建议提示内容的实现,里面的数据是从数据库中进行读取的,后台获取数据部分没有展现也没有上传,后台部分需要自己从数据库进行读取完善。返回响应的Json值进行展示。

    filereader与promise封装使用.html

    工作中项目需求:读取用户上传的Excel文件,并将Excel转换为json数据格式,然后上传至后台数据库。 问题点:Filereader中new Filereader.onload = function()为异步回调函数,reader中获取到的数据无法传递到...

    Python是怎样处理json模块的

    一般,后台应用程序将响应数据封装成JSON格式返回。 JSON的基本语法如下:JSON名称/值对。JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),然后着是一个冒号(:),最后是值。 JSON最常用的...

    【毕业设计】基于react和antd共享单车后台管理系统(前端源码).zip

    添加json-server 和mock.js 产生mock数据 添加后台的接口模拟假数据 2019-06-16 添加用户管理 添加基础表格封装 修复编译警告 添加echarts图表展示 2019-06-15 添加城市管理 添加訂單詳情 添加.gitignore文件 2019-...

    基于Spring Boot + Vue + Elementui + MySQL实现的超市进存销管理系统源代码+数据库+详细文档

    前端:绘制界面Login.vue,并封装axios,在plugins/api.js,进行统一的错误处理,然后通过axios调用后台接口获得数据,登录成功之后需要获得用户名和token。 后端:统一返回JSON数据格式,在ResultDTO.java,数据...

    毕业设计: 旅游旅游网站,基于gulp-webpack,react,react-router,redux

    需要后台提供json数据 ,旅游旅游网站,基于webpack,react,react-router,redux. 包含前端页面和/admin路由的后端页面 启动 运行:npm install安装依赖包 前端启动: gulp 或者 npm run dev 前端构建: gulp ...

    详解Vue中Axios封装API接口的思路及方法

    在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御XSRF等。 在一...

    基于Django和HTML的微信功能封装设计源码

    本设计源码提供了一个基于Django和HTML的...该项目旨在为接入微信公众平台的Django开发者提供便捷的微信功能封装及最基本的后台管理支持。适合用于学习和实践Django、HTML和JavaScript技术,以及开发微信相关的应用。

    vue中Axios的封装与API接口的管理详解

    在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御XSRF等。所以...

    JS组件系列之JS组件封装过程详解

    之前分享了那么多bootstrap组件的使用经验,这篇文章打算研究下JS组件的扩展和封装,我们来感受下JQuery为我们提供$.Extend的神奇,看看我们怎么自定义自己的组件,比如我们想扩展一个$("#id").MyJsControl({})做...

    node-express-mysql:node.js通过 express框架创建后台项目,连接mysql数据实现用户的登录,注册,数据的增删改查 ,登录的token验证,图片上传,以及日志记录

    node-express-mysqlnode.js通过 express框架创建后台项目,连接mysql数据实现用户的登录,注册,数据的增删改查 ,登录的token验证,图片上传,以及日志记录运行项目npm run dev ==&gt;安装热更新插件 具体内容查看地址...

    精通JS脚本之ExtJS框架.part1.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

Global site tag (gtag.js) - Google Analytics