使用Ajax的Spring MVC REST调用

这篇文章提供了对Spring MVC Web应用程序的REST调用的简单示例。 它基于在Spring MVC上下文示例中使用Spring MVC服务静态资源和使用Ajax获取JSON 。 该代码可在GitHub的Spring-REST-With-Ajax目录中找到。

主页

我们的主页包含与执行Ajax调用的Javascript函数链接的四个按钮:

...
<body>
<h1>Welcome To REST With Ajax !!!</h1>
<button type='button' onclick='RestGet()'>GET</button>
<button type='button' onclick='RestPut()'>PUT</button>
<button type='button' onclick='RestPost()'>POST</button>
<button type='button' onclick='RestDelete()'>DELETE</button>
</body>
...


Java脚本

我们的Javascript文件包含四个功能:

var prefix = '/spring-rest-with-ajax';var RestGet = function() {$.ajax({type: 'GET',url:  prefix + '/MyData/' + Date.now(),dataType: 'json',async: true,success: function(result) {alert('At ' + result.time+ ': ' + result.message);},error: function(jqXHR, textStatus, errorThrown) {alert(jqXHR.status + ' ' + jqXHR.responseText);}});
}var RestPut = function() {var JSONObject= {'time': Date.now(),'message': 'User PUT call !!!'};$.ajax({type: 'PUT',url:  prefix + '/MyData',contentType: 'application/json; charset=utf-8',data: JSON.stringify(JSONObject),dataType: 'json',async: true,success: function(result) {alert('At ' + result.time+ ': ' + result.message);},error: function(jqXHR, textStatus, errorThrown) {alert(jqXHR.status + ' ' + jqXHR.responseText);}});
}var RestPost = function() {$.ajax({type: 'POST',url:  prefix + '/MyData',dataType: 'json',async: true,success: function(result) {alert('At ' + result.time+ ': ' + result.message);},error: function(jqXHR, textStatus, errorThrown) {alert(jqXHR.status + ' ' + jqXHR.responseText);}});
}var RestDelete = function() {$.ajax({type: 'DELETE',url:  prefix + '/MyData/' + Date.now(),dataType: 'json',async: true,success: function(result) {alert('At ' + result.time+ ': ' + result.message);},error: function(jqXHR, textStatus, errorThrown) {alert(jqXHR.status + ' ' + jqXHR.responseText);}});
}


控制者

我们的控制器捕获REST调用并返回JSON。 在实际的应用程序中,将执行CRUD操作而不是返回JSON:

@Controller
@RequestMapping(value = '/MyData')
public class MyRESTController {@RequestMapping(value='/{time}', method = RequestMethod.GET)public @ResponseBody MyData getMyData(@PathVariable long time) {return new MyData(time, 'REST GET Call !!!');}@RequestMapping(method = RequestMethod.PUT)public @ResponseBody MyData putMyData(@RequestBody MyData md) {return md;}@RequestMapping(method = RequestMethod.POST)public @ResponseBody MyData postMyData() {return new MyData(System.currentTimeMillis(),'REST POST Call !!!');}@RequestMapping(value='/{time}', method = RequestMethod.DELETE)public @ResponseBody MyData deleteMyData(@PathVariable long time) {return new MyData(time, 'REST DELETE Call !!!');}
}


运行示例

编译后,可以使用mvn tomcat:run运行该示例。 然后,浏览:

http:// localhost:8585 / spring-rest-with-ajax /

将显示主页:

如果单击任何按钮,将显示一个弹出窗口:

见这里为更多关于REST•多个Spring相关的帖子在这里 。

参考: 技术说明博客上的JCG合作伙伴 Jerome Versrynge的Spring MVC REST使用Ajax进行了调用 。

翻译自: https://www.javacodegeeks.com/2012/11/spring-mvc-rest-calls-with-ajax.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队作业—预则立他山之石

团队作业—预则立&&他山之石 Deadline: 2017.10.24 22:00pm 作业要求 一、确立团队选题&#xff0c;建立和初步熟悉团队git的协作方式。项目后续的代码、文档都要通过github增量式管理。实现文档的版本化和增量式管理。 二、初步确立团队任务计划&#xff0c;将团队的任…

linux7系统如何配置网卡,Linux 7 配置网卡(nmcli)

操作系统版本&#xff1a;[rootcjcos01 network-scripts]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.5 (Maipo)查看网卡、IP等信息&#xff1a;[rootcjcos01 ~]# ifconfigenp0s3: flags4163 mtu 1500inet 192.168.1.90 netmask 255.255.255.0 bro…

学以致用深入浅出数字信号处理 pdf_数字阵列雷达--相控阵专题讲座之三

数字阵列雷达-相控阵专题讲座之三https://www.zhihu.com/video/1218562626877583360从名词上看&#xff0c;数字阵列雷达&#xff0c;肯定是阵列雷达了&#xff0c;那么数字阵列与传统的相控阵雷达又有什么区别呢&#xff1f;传统的相控阵雷达&#xff0c;是依靠移相器、衰减器…

Ubuntu中右击出现终端

1 root用户 $sudo apt-get install nautilus-open-terminal 2重启 3ok 转载于:https://www.cnblogs.com/lanjianhappy/p/6761599.html

MapReduce:处理数据密集型文本处理–局部聚合第二部分

这篇文章继续进行有关使用MapReduce进行数据密集型处理的书中实现算法的系列文章。 第一部分可以在这里找到。 在上一篇文章中&#xff0c;我们讨论了使用本地聚合技术来减少通过网络进行混洗和传输的数据量的方法。 减少传输的数据量是提高MapReduce作业效率的主要方法之一。 …

python爬虫需要什么知识-学习Python爬虫技术,需要掌握哪些web端的知识?

HTML5&#xff1a;html概述和基本结构、html标题标签、html段落标签、换行标签、块标签、图片标签、a链接标签、列表标签、表格、表单、页面布局等。 CSS3&#xff1a;CSS基本语法和页面引用、CSS文本设置、颜色表示法、CSS选择器、盒子模型、盒子模型实际尺寸、浮动、四大定位…

UDP学习总结

1、UDP的优势是什么&#xff1f;有哪些典型的应用是使用UDP的&#xff1f;为什么&#xff1f; 2、转载于:https://www.cnblogs.com/zhouhaibing/p/7669251.html

Linux版本的SVN客户端,linux 下安装 subversion(svn) 客户端

svn server 为只支持http://协议的windows;test web server 为as4,现需安装svn客户端方便同步代码网上找了下都是讲如何安装svn server的&#xff0c;我只需要一个支持http协议的客户端哈&#xff0c;不想装apache。安装所需软件apr,apr-util,sqlite,neon,subversion1.下载软件…

使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js

前言&#xff1a;前端小白一枚&#xff0c;刚注册博客&#xff0c;先发个学习过程中新碰到小问题试试水吧~ 摘要&#xff1a;最近在学习bootstrap&#xff0c;偶然碰到了一个小问题&#xff0c;bootstrap网站也没有做过多的解释&#xff0c;今天分享给大家。 问题描述&#x…

C#中的三层

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为&#xff1a;界面层&#xff08;User Interface layer&#xff09;、业务逻辑层&#xff08;Business Logic Layer&#xff09;、数据访问层&#xff08;Data access layer&#xff09;。区分层次的…

研究僵局–第3部分

在本系列的前两个博客&#xff08; 第1部分和第2部分&#xff09;中 &#xff0c;我演示了如何创建一段死锁的不良代码&#xff0c;然后使用该代码展示了进行线程转储的三种方式。 在这个博客中&#xff0c;我将分析线程转储以找出错误的原因。 下面的讨论同时涉及本系列第1部…

qq2009显ip版怎么用_毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑

脸上毛孔粗大怎么破&#xff1f;超级烦恼尤其是一到秋季脸上经常油腻腻的为什么会毛孔粗大呢&#xff1f;毛孔粗大怎么破&#xff1f;用对方法&#xff0c;轻松改善显皮肤嫩滑 当皮肤老旧角质积聚越多&#xff0c;会使肌肤变厚、变粗糙&#xff0c;毛孔变粗大&#xff0c;肌肤也…

linux 账号密码 字段,详解Linux中的用户密码管理命令passwd和change

passwd修改用户密码参数-k 保持未过期身份验证令牌-l 关闭账号密码。效果相当于usermod -L&#xff0c;只有root才有权使用此项。-u 恢复账号密码。效果相当于usermod -U&#xff0c;同样只有root才有权使用。-g 修改组密码。gpasswd的等效命令。-f 更改由finger命令访问的用户…

hello程序的运行过程-从计算机系统角度

hello程序的运行过程-从计算机系统角度 1、gcc编译器驱动程序读取源程序文件hello.c&#xff0c;并将它翻译成一个可执行目标文件hello。翻译过程分为四个阶段&#xff1a;预处理阶段&#xff0c;编译阶段&#xff0c;汇编阶段&#xff0c;链接阶段。 2、初始时&#xff0c;she…

靠谱的div引入任何外链内容

靠谱的div引入任何外链内容 开发中经常要在div中引入一个页面,该页面可能是内部页面,可能是一个外部页面,也可能只是一个域名获取的请求. 对于内部页面的加载,建议使用jquery的load函数,如: 1 $("#targetId").load("someUrl/templatePage.html"); 对于外…

Eclipse对类固醇的重构

在上一篇有关常见Java违规的文章中 &#xff0c;我列出了Java开发人员容易犯的一系列错误。 在重构Java项目以解决这些违规问题的同时&#xff0c;我广泛使用了Eclipse的重构功能来快速更改代码。 下面是这种重构技术的汇编。 1.在块级语句周围添加花括号 用{curly braces}包装…

微服务发展的历史_“美丽新羌 光照未来” 新羌社区开展微视频宣传片拍摄活动...

见圳客户端、深圳新闻网讯(记者 王志明 通讯员 甘力宇)为记录新羌社区的历史变迁&#xff0c;弘扬新羌人与时俱进、开拓进取的创新精神&#xff0c;宣传社区党委、社区一线工作者及社区居民的感人事迹和精神&#xff0c;展现深圳社区发展新风貌&#xff0c;2020年10月&#xff…

linux中扫描仪驱动程序,VueScan For Linux通用扫描仪驱动下载_VueScan For Linux通用扫描仪驱动官方下载-太平洋下载中心...

VueScan For Linux通用扫描仪驱动是一款提供 Linux 使用的图片扫描工具&#xff0c;它具有各种高级硬件能力使用非常广泛的的扫描仪软件&#xff0c;支持EPSon、HP、Nikon 和Canon 品牌的扫描仪设备&#xff0c;具有优良的色彩保真度和色彩平衡&#xff0c;可以让用户比平板扫描…

HTML head 头部中的各类标签

HTML <head> 头部 <head> 元素包含了所有的头部标签元素。在 <head>元素中你可以插入脚本&#xff08;scripts&#xff09;, 样式文件&#xff08;CSS&#xff09;&#xff0c;及各种meta信息。 可以添加在头部区域的元素标签为: <title>, <style&g…

CSS变量(自定义属性)实践指南

本文翻译自&#xff1a;https://www.sitepoint.com/practical-guide-css-variables-custom-properties/ 转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 Sass和Less这样的预处理器&#xff0c;让…