这篇文章提供了对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