利用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 相关文章推荐
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 Javascript
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
Vue-router 中hash模式和history模式的区别
Jul 24 Javascript
vue-cli项目使用mock数据的方法(借助express)
Apr 15 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
JavaScript数组及常见操作方法小结
Nov 13 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 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
基于Zookeeper的使用详解
2013/05/02 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
python简单实现刷新智联简历
2016/03/30 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python实现学生通讯录管理系统
2021/02/25 Python
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
会计出纳岗位职责
2013/12/25 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
投标担保书范文
2014/04/02 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
红头文件任命书范本
2014/06/05 职场文书
工程项目合作意向书
2015/05/08 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL