這篇文章提供了對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