无论使用什么框架都存在着从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的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]