无论使用什么框架都存在着从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); });
});//欢迎加入全栈开发交流圈一起学习交流:864305860
复制代码

【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; } //欢迎加入全栈开发交流圈一起学习交流:864305860resultMap.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('修改失败'); } //欢迎加入全栈开发交流圈一起学习交流:864305860}, //帮助突破技术瓶颈,提升思维能力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},//欢迎加入全栈开发交流圈一起学习交流:864305860dataType:'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);}) //欢迎加入全栈开发交流圈一起学习交流:864305860list.appendChild(fragment);mui(document).imageLazyload({placeholder:'../img/60*60.gif';});},erro:function(xhr,type,errorThrown){console.log(type);}//欢迎加入全栈开发交流圈一起学习交流:864305860});
//列表点击事件
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}//欢迎加入全栈开发交流圈一起学习交流:864305860});//面向1-3年前端人员
});//帮助突破技术瓶颈,提升思维能力
复制代码

json格式的数据相对于xml文件来说,传输速度快且稳定,在前端设计中是一种非常不错的选择。 结语

感谢您的观看,如有不足之处,欢迎批评指正。

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。 对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。 最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

转载于:https://juejin.im/post/5bfe7dc251882516fa639e66

手把手教你使用Js实现前后台传送Json相关推荐

  1. Python之手把手教你用JS逆向爬取网易云40万+评论并用stylecloud炫酷词云进行情感分析

    本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 写在前面: 文章有点长,操作有点复杂,需要代码的直接去文末即可.想要学习的需要有点耐心 ...

  2. 【轮子狂魔】手把手教你用JS给博客动态增加目录 - 超级懒人版

    动态显示目录的作用 不用每次写博客的时候繁琐的人工整理目录,又可以动态浮动在右下角,方便快速跳到感兴趣的位置同时也可以快速的对文章内容有一个大概的了解. 实现原理 首先根据个人喜好,我习惯了用 h1 ...

  3. 手把手教你利用js给图片打马赛克

    文章目录 效果演示 Canvas简介 知识点简介 step-by-step 完整代码 效果演示 Canvas简介 这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 AP ...

  4. php转发朋友圈缩略图片,解释最全的,手把手教的微信JS sdk分享设置教程-微信分享插件PHP源码JS-SDK接口,分享到朋友圈 转发好友带缩略图...

    亲们,此文是我上传的有关微信分享插件PHP源码JS-SDK接口的.rar和.zip的说明使用文件 许多朋友都面临自己编写的网站通过微信转发时,无论是分享微信好友或是微信朋友圈时,出现无缩略图显示的问题 ...

  5. 手把手教你用js封装一个导航栏组件

    文章目录 前言 一.实现思路介绍 二.代码 1.html代码 2.js代码 3.css代码 总结 前言 本文介绍如何用js封装一个组件,这里以导航栏为例. 看这篇文章你需要有一定的js基础哦 一.实现 ...

  6. 手把手教你用js写一个可以选择年月的动态日历组件

    啥话不说,我们先上效果图,源码放在最后 1.实现的功能 用年切换日历.用月切换日历, 可以显示用月显示,也可以用年显示,可以在日历中显示对应某天的时间 2.编写界面代码 <!DOCTYPE ht ...

  7. 手把手教你搭建JS开发环境

    首先明确需要浏览器端和服务器端各一个. 1.浏览器端 浏览器可以下载--谷歌/火狐/Safari/Edge/欧朋等 浏览器端可以自行下载最新版本. 2.服务器端 Node.js 下载地址:www.no ...

  8. 手把手教你处理 JS 逆向之图片伪装

    这是「进击的Coder」的第 655 篇技术分享 作者:星安果 来源:AirPython " 阅读本文大概需要 6 分钟. " 最近在更新反爬系列相关的内容,这一篇就讲讲最简单的「 ...

  9. java解析多层json,手把手教你怎么解析多层嵌套的JSON数据(使用JSONModel)

    2018.11.14日更新 前言 没想到这篇简单介绍JSONModel的文章竟然已经破了两千阅读量,一跃成为我阅读量最高的文章,作为iOS小白的我感到万分惶恐 在这一个月的项目中,总是用到JSONMo ...

最新文章

  1. Datawhale组队学习周报(第017周)
  2. 卷积神经网络要点解析
  3. ios下微信标题修改
  4. 想学好数学,请收好这份宝典!
  5. threejs 入门中的OrbitControls
  6. clearcase Commands
  7. 数据结构: 树形结构+思维导图
  8. python socketserver实现tcp post,get请求
  9. 【错误】E45: ‘readonly‘ option is set (add to override)
  10. JUJU 猫论坛系统克隆准备工具 V1.0.0.0 Beta 测试版(菜鸟也能轻松制作万能克隆光盘)...
  11. 阿里倡导成立“罗汉堂”, 6名诺贝尔奖得主加入
  12. Spring Security(14)——权限鉴定基础
  13. 自动学习——《Learning to Teach》——ICLR2018
  14. ROS2网络课程资料分享2019.10.26
  15. 祭奠_即将消失的JSP
  16. MySql中的行锁,表锁
  17. 源码分析教程5部曲之1——漫游C语言-杨振平-专题视频课程
  18. word修改题注样式图x 为图x.x(wps可用
  19. 贪心算法题目 电池的寿命
  20. Wireshark各版本下载地址

热门文章

  1. html5 java 实现 微信获取认证身份信息
  2. android问题汇总-待解决
  3. 【报告分享】2020年抖音KOL生态研究-卡思数据(附下载)
  4. 《My Prayer》Devotion ——《祈祷》中英互译 【英文经典流行歌曲】
  5. 【seo】网站内链优化
  6. php制作普通网站流程图,分享在线制作流程图的网页
  7. 步进电机控制系统中脉冲型和总线型的区别?
  8. 使用C语言操作树莓派GPIO
  9. avro的c语言api,在CentOS/RHEL上编译序列化软件Avro的C语言接口库
  10. python羊车门问题_羊车门问题 - osc_wq8j2a9a的个人空间 - OSCHINA - 中文开源技术交流社区...