[英]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.