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

无论使用什么框架都存在着从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的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • json实现前后台的相互传值详解
  • 如何使用json在前后台进行数据传输实例介绍
(0)

相关推荐

  • 如何使用json在前后台进行数据传输实例介绍

    上一篇博客写到用javascript生成多组文本,可以让数据的输入不受显示,现在我们需要把这些输入写入数据库,这里就用到json传入. 首先,我们来写一下后台如何生成要传输的数据 [html] 复制代码 代码如下: function generateDtb() { //写入 var txtName = document.getElementById("txtName").value; //创建数组 var dtb = new Array(); //通过循环把数据写入到数组并返回 for

  • json实现前后台的相互传值详解

    前后台的相互传值如果值太多,写的麻烦累人,且容易出错.这里整理出一套使用标记 标签属性的办法来传值, 后台取值和前台的绑定都有了大大的简化. 一.把json对象转成字符串 复制代码 代码如下: $.extend({          //将json对象转换成字符串   [貌似jquery没有自带的这种方法]          toJSONString: function (object) {              if (object == null)                  re

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

    无论使用什么框架都存在着从controller向Html页面或者jsp页面传递数据的问题,最常用的方式是传递Json字符串.以前对这块知识有些模糊,现在整理一下. [Jquery基本方法] 实现传值常用的是Jquery以及内部封装的ajax.首先看一下jquery的get()和post()语法.get()方法是从服务器获得数据,其主要参数就是获得后台请求地址,以及负责处理的回调函数: $.get(URL,callback); $("button").click(function(){

  • 利用JS来控制键盘的上下左右键(示例代码)

    这是一个JS初级代码,想学JS的朋友,可以研究下或者扩展下,最好能用JS实现整个键盘的控制,那感觉就很有意思了. 具体代码如下: 复制代码 代码如下: <style>tr.highlight{background:#08246B;color:white;}</style><table border="1" width="70%" id="ice"><tr><td><input ty

  • 原生JS利用transform实现banner的无限滚动示例代码

    功能 默认情况无限循环向右移动 点击数字切换到对应图片 点击左右切换可切换图片 原理 首先说下原理. 在布局上所有的图片都是重叠的,即只要保证Y方向对齐即可,当前可见的图z-index层级最高. 每隔3s中更换一张图片,使用setTimeout定时. 使用gIndex记录当前可视区域的展示的是哪张图片下标,每次更换,计算下一张图片的下标. 通过requestAnimationFrame实现一次图片切换的动画. 这种方法也可以做到整个页面始终只有2个img标签,而不必把所有的img节点全部创建出来

  • springboot前后台数据交互的示例代码

    本文介绍了springboot前后台数据交互的示例代码,分享给大家,具体如下: 1.在路径中传递数据,比如对某个数据的id:123 前台发送:格式大致如下 在路径中传数据 后台接收: 后台接收数据 后台接收结果 2.查询字符串传递数据前台发送:   前台使用Querystring发送数据 后台接收: 这里@RequestParm可以不写,在后台找不到前台对应的字段时,输出null,在@RequestParam中指定的话输出指定的值(前台没给出字段时): 后台接收queryString方式传递的数

  • Java利用Redis实现高并发计数器的示例代码

    业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信.一个接口一分钟限制多少请求.一个接口一天限制调用多少次等等.使用Redis的Incr自增命令可以轻松实现以上需求.以一个接口一天限制调用次数为例: /** * 是否拒绝服务 * @return */ private boolean denialOfService(String userId){ long count=JedisUtil.setIncr(DateUtil.getDate()+"&"+user

  • java利用socket通信实现Modbus-RTU通信协议的示例代码

    Modbus Modbus是一种串行通信协议.Modbus 一个工业上常用的通讯协议.一种通讯约定.Modbus协议包括RTU.ASCII.TCP.其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现. 简单分析Modbus-RTU报文 37 03 10 3F 80 00 00 00 00 00 00 3F 80 00 00 40 40 00 00 24 dd(十六进制) 37:从站地址 ,03:功能码,10:读取的字节数,24 dd:crc校验码.其它就是传送的数据. 4G DTU(

  • C语言利用UDP实现群聊聊天室的示例代码

    目录 1.UDP群聊的功能 2.写项目的流程 3.流程图 4.代码实现 4.1头文件 4.2函数 4.3服务器 4.4客户端 1.UDP群聊的功能 有新用户登录,其他在线的用户可以收到登录信息 有用户群聊,其他在线的用户可以收到群聊信息 有用户退出,其他在线的用户可以收到退出信息 服务器可以发送系统信息 2.写项目的流程 画流程图 根据流程图写框架 一个功能一个功能实现 3.流程图 4.代码实现 4.1头文件 #ifndef __MYHEAD_H__ #define __MYHEAD_H__ #

  • node.js实现token身份验证的示例代码

    安装依赖 express-jwt npm i express-jwt 将token校验相关数据导入配置文件 // setting.js module.exports = {     token: {         // token密钥         signKey: 'blog_globM_token_key_$$$$',         // 过期时间         signTime: 3600 * 24 * 3,         // 请求头参数         header: 'au

  • node.js 用socket实现聊天的示例代码

    本文介绍了node.js 用socket实现聊天的示例代码,分享给大家,也给自己留个笔记,具体如下: 服务器搭建 app.js const http = require("http"); const express = require("./express"); //创建一个服务 const server = http.createServer(express); //监听服务端口 server.listen(8001,()=>{ console.log(&q

  • django js实现部分页面刷新的示例代码

    例子中,我用的是显示机器上的进程信息的表格,获取不同的机器的进程信息时,更新这个展示信息的表格,如下: 当我在输入框中输入ip时,我希望只是更新这个表格,页面其他部分不变,实现方式如下: 1.在原页面中设置这个表格的id为pstable <table class="table table-striped" id="pstable"> <thead> <tr> <th>user</th> <th>

随机推荐