Spring MVC or Rest Services with spring + AngularJS



我计划将Spring MVC + angularJS用于j2ee应用程序。问题如下:-

  1. 是否可以将AngularJS与Spring MVC一起使用,我不是在谈论带有Spring配置的Rest Services。它的Spring MVC框架来构建Web应用程序。如果是这样,请
  2. 举例说明。
  3. 我做了谷歌,发现人们使用Spring mvc和restful服务同义词,我得到的谷歌结果就像angularJS + Spring mvc rest服务,其中请求响应是JSON格式,我不确定这是否是他们说其Rest服务的原因。

谢谢

首先,AngularJS是一个前端MVC框架,你在后端使用什么技术并不重要。可能是Java(弹簧,支柱或任何其他框架(或.NET.

为了得到你的回应JSON,你必须包括"杰克逊JSON处理器"。这是一个与此相关的问题。

Spring:从 Java Bean 返回 JSON 响应

也为了处理你的AngularJS代码,这里是问题。

Spring MVC 和 Angularjs

干杯!玩得开心!

我正在从此示例开始进行类似的实现 https://github.com/xvitcoder/spring-mvc-angularjs。与样品的主要区别

a( 将所有 AngularJS HTML 文件放在 webapp/WEB-INF/views 下

b( 在/views 上映射一个 Spring ViewResolver。我们正在使用Velocity,但您可以使用freechart或任何视图技术。

<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/views/">
</bean><!-- see xvitcoder sample for the complete web.xml-->

c( 有一个控制器来响应您的 HTML 部分请求。神奇之处在于客户端 URL 不需要与物理文件夹结构匹配。当你有一个静态的html项目时,这是缺乏的。

@RequestMapping("dummypath/{folder}/{remainder}")
public String getSomePartial(@PathVariable("folder") String folder,
@PathVariable("remainder") String path) {
return folder + "/" + path;
}

dummpypath允许将AngularJS部分(ngInclude,ngView(的请求与其他请求(如servlet或REST服务(隔离开来。HTML 文件实际上仍然在/views/folder/path 下。您可以执行更复杂的操作,例如计算不同的视图名称。

<div ng-include="dummypath/summary/table.html"></div>

将加载 views/summary/table.html 文件。您的 ViewResolver 将事先预处理此文件,从而允许进行一些服务器端修复。

d( 从 Spring MVC 将参数传递给 angularjs 的示例。在 Spring 控制器中定义查询并返回一个 html 文件

@RequestMapping
public String getPage(@RequestParam(value="someparam", defaultValue="0") string myparam,
ModelMap model){
model.addAttribute("someparam", myparam)
return "index"; //index.html
}

在 AngularJs 控制器中注入$location以检索参数。

$scope.someparam = ($location.search()).someparam

一旦索引被加载,我们就在 Angular 生态系统中!我正在使用此方法在保留上下文的同时刷新网页。根据查询参数,您可以加载一些 JSON 内容或将 ngSwitch 放在右侧部分。

e( 优点和缺点

优点:您不能总是使用静态文件 + REST 构建完整的解决方案

缺点:测试和构建项目需要额外的步骤。您需要在 WAR 中捆绑东西,在外部和内部测试它们。

最新更新