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


Posted in Javascript onMarch 29, 2018

无论使用什么框架都存在着从controller向Html页面或者jsp页面传递数据的问题,最常用的方式是传递Json字符串。以前对这块知识有些模糊,现在整理一下。

【Jquery基本方法】

实现传值常用的是Jquery以及内部封装的ajax。首先看一下jquery的get()和post()语法。get()方法是从服务器获得数据,其主要参数就是获得后台请求地址,以及负责处理的回调函数:

$.get(URL,callback);

$("button").click(function(){ 
 $.get("demo_test.php",function(data,status){ 
  alert("数据: " + data + "\n状态: " + status); 
 }); 
});

post通过HTTP post方法请求数据:

$.post(URL,data,callback);

$("button").click(function(){ 
  $.post("/try/ajax/demo_test_post.php", 
  { 
    name:"菜鸟教程", 
    url:"http://www.runoob.com" 
  }, 
    function(data,status){ 
    alert("数据: \n" + data + "\n状态: " + status); 
  }); 
});

【spring mvc框架+Jquery ajax】

spring mvc框架的controller通过标注方法向js返回Map<String,Object>类型参数。

@RequestMapping("update") 
@ResponseBody //此批注是ajax获取返回值使用 
public Map<String,Object> update(Long num,BigDecimal amount){ 
  map<string,Object> resultMap=new HashMap<string,Object>(); 
   
  if(num==null || agentId==null || amount==null){ 
    resultMap.put("result","参数不合法"); 
    return resultMap; 
  } 
  resultMap.put("result",result); 
   
}

jquery ajax获得返回值:

var params={}; 
params.num=num; 
params.id=id; 
params.amount=amount; 
$.ajax({ 
  async:false, 
  type:"post", 
  url:"uset/update", 
  data:params, 
  dataType:"json", 
  success:function(data){ 
    if(data.result=='success'){ 
      alert('修改成功'); 
    }else{ 
      alert('修改失败'); 
    } 
  }, 
  error:function(data){ 
    alert(data.result); 
  } 
   
})

如果在js中定义的参数与持久层定义的javabean保持一致,controller层同样可以接收实体。

【MUI绑定数据实例】

使用jquery很容易获得controller获得的json值,那我们如何操作json值,让其绑定到页面控件呢?首先我们简单理解一下json的结构:

var employees=[{"name":"Jon","age":12},{"name":"Tom","age":14}];

如上面定义的Json对象,{}表示对象,[]表示数组,"" 表示属性或值,: 表示后者是前者的值。

获得到json对象中的值:var name=employees[0].name;

修改:employees[0].name="LiMing";

MUI框架中的应用举例,实现list中添加li 标签:

mui.init();
var url="queryUser"
mui.ajax(url,{
	data:{
		'type':1,
		'limit':10
	},
	dataType:'json',
	type:'post',
	success:function(data){
		var songs=data.result.songs;
		var list=document.getElementById("list");
		var fragment=document.creeateDocumentFramgment();
		
		var li;
		mui.each(songs,function(index,item){
			var id=item.id,
			name=item.album.name,
			author=item.artists[0].name;
			
			li=document.createElement('li');
			li.className="mui-table-view-cell mui-media";
			li.innerHTML='<a class="mui-navigate-right" id='+ id +' data-audio='+ audio +'>'+'<img class="mui-media-object mui-pull-left" data-lazyload="'+picUrl+'">'+'<div class="mui-media-body">'+name+'<p class="mui-ellipsis">'+author+'</p>'+'</div>'+'</a>';
		fragment.appendChild(li);
		})
		
		list.appendChild(fragment);
		mui(document).imageLazyload({
			placeholder:'../img/60*60.gif';
		});
		
	},erro:function(xhr,type,errorThrown){
		console.log(type);
	}
	
});
//列表点击事件
mui("#list").on('tap','li a',function(){
	var id=this.getAttribute('id');
	var audio=this.getAttribute('data-audio');
	mui.openWindow({
		url:'music.html',
		id:'music.html',
		extras:{
			musicId:id,
			audioUrl:audio
		}
	});
});

【总结】

json格式的数据相对于xml文件来说,传输速度快且稳定,在前端设计中是一种非常不错的选择。

以上这篇利用js实现前后台传送Json的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JAVASCRIPT对象及属性
Feb 13 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
js限制文本框只能输入整数或者带小数点的数字
Apr 27 Javascript
关于webpack代码拆分的解析
Jul 20 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
探索JavaScript中私有成员的相关知识
Jun 13 Javascript
Vue.js中使用Vuex实现组件数据共享案例
Jul 31 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 #Javascript
JS获取url参数,JS发送json格式的POST请求方法
Mar 29 #Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 #Javascript
Vue.js 表单控件操作小结
Mar 29 #Javascript
js传递数组参数到后台controller的方法
Mar 29 #Javascript
Vue.js实现可配置的登录表单代码详解
Mar 29 #Javascript
Vue项目中如何引入icon图标
Mar 28 #Javascript
You might like
php strrpos()与strripos()函数
2013/08/31 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
用javascript操作xml
2006/11/04 Javascript
自己的js工具_Form 封装
2009/08/21 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
车间统计员岗位职责
2014/01/05 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript
element tree树形组件回显数据问题解决
2022/08/14 Javascript