无论使用什么框架都存在着从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
@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" srcload="'+picUrl+'" alt="js实现前后台传送Json代码实例" >'+'<p class="mui-media-body">'+name+'<p class="mui-ellipsis">'+author+'</p>'+'</p>'+'</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文件来说,传输速度快且稳定,在前端设计中是一种非常不错的选择。
相关推荐:
怎么通过ajax传送json数组到php,并通过php将数据插入数据库