利用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的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。