利用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有关的小细节
Apr 02 Javascript
javascript 按回车键相应按钮提交事件
Nov 02 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
javascript实现密码强度显示
Mar 18 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
简单了解常用的JavaScript 库
Jul 16 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语法速查表
2006/12/06 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python 第一步 hello world
2009/09/25 Python
Python3 入门教程 简单但比较不错
2009/11/29 Python
python发送arp欺骗攻击代码分析
2014/01/16 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
用Python写一个自动木马程序
2019/09/17 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python是什么 Python的用处
2020/05/26 Python
python怎么提高计算速度
2020/06/11 Python
浅析Python 序列化与反序列化
2020/08/05 Python
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
外贸业务员岗位职责
2013/11/24 职场文书
英语简历自我评价
2014/01/26 职场文书
加强作风建设心得体会
2014/10/22 职场文书
高三语文复习计划
2015/01/19 职场文书
重温入党誓词主持词
2015/06/29 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2016年父亲节寄语
2015/12/04 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
python playwright之元素定位示例详解
2022/07/23 Python