[英]AngularJS Spring MVC setup
我是Spring MVC的初學者。 我想使用AngularJS和Spring MVC設置RESTful單頁應用程序。
作為普通的Web應用程序,當用戶請求URI時,后端Web服務器將首先將HTML模板傳輸到前端,然后使用JSON進行通信。
我只是想知道如何將HTML模板從Spring MVC服務傳輸到前端。
任何信息將不勝感激。 非常感謝。
另外,對您的要求更合適的恕我直言,不必理會初始控制器,只需將您的html和javascript作為靜態資源提供服務,就可以在spring conf中使用類似的方法:
<mvc:resources location="/app/" mapping="/app/**"/>
<mvc:annotation-driven/>
然后僅使用ajax和rest控制器與后端進行交互。
下面是一個非常簡單的示例(摘自《 Spring Guide 使用AngularJS消費RESTful Web服務》 ):
創建一個可靜態訪問的html頁面(如本指南所述,使用Spring Boot意味着有一些標准位置會自動用於靜態資源-如果您不使用Spring Boot,則必須進行配置),喜歡:
<!doctype html>
<html ng-app>
<head>
<title>Hello AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="hello.js"></script>
</head>
<body>
<div ng-controller="Hello">
<p>The ID is {{greeting.id}}</p>
<p>The content is {{greeting.message}}</p>
</div>
</body>
</html>
hello.js
腳本可能是
function Hello($scope, $http) {
$http.get('http://yourpath/greeting').
success(function(data) {
$scope.greeting = data;
});
}
然后相應的Spring Service將是:
@RestController
public class Controller {
@RequestMapping("/greeting")
public Greeting greeting() {
return new Greeting();
}
}
public class Greeting {
private final Integer id;
private final String message;
public Greeting() {
this(1,"test")
}
public Greeting(Integer id, String message) {
this.id = id;
this.message = message;
}
public Integer getId() {
return id;
}
public String getMessage() {
return message;
}
}
在這個非常簡單的示例中,僅將模板作為靜態資源進行訪問,因此將模板轉移到了前端。 您當然可以想象一個更復雜的場景,其中控制器將是
@Controller
public class Controller {
@RequestMapping("/greeting")
public ModelAndView greeting() {
return new ModelAndView("someView", someObject);
}
}
和Spring MVC會根據配置的ViewResolver
將someView
映射到模板。 這樣,服務器將使用所需的任何數據動態填充模板。
您可以查看更多教程:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.