簡體   English   中英

AngularJS Spring MVC設置

[英]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會根據配置的ViewResolversomeView映射到模板。 這樣,服務器將使用所需的任何數據動態填充模板。

您可以查看更多教程:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM