2016-08-21 34 views
0

所以我有一個簡單的應用AngularJs和Spring MVC。我有一個映射到angularJs頁面controlller,我有這樣的代碼在JSP頁面中:AngularJs視圖與春天:不顯示

<div ng-app="myApp" ng-controller="myCtrl"> 
<p>The name is <span ng-bind="person.lastName"></span></p> 
{{ lastName }} 
</div> 

<script src="applications.js"></script> 
<script src="controllers.js"></script> 

的application.js:

var app = angular.module("myApp", []); 

controllers.js:

app.controller("myCtrl", function($scope) { 
$scope.firstName = "John"; 
$scope.lastName= "Doe"; 
}); 

當我運行此與關鍵它dosn't運行,但當我訪問該文件直接在我的瀏覽器中工作就像一個魅力,有人關心解釋嗎?

謝謝。 編輯

WebConfig.java:

public class WebConfig extends WebMvcConfigurerAdapter { 
@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 

    registry.addResourceHandler("/resources/**") 
    .addResourceLocations("/resources/"); 
} 

@Override 
public void configureDefaultServletHandling (DefaultServletHandlerConfigurer configurer) 
{ 
    configurer.enable(); 
} 
} 

資源文件夾:

Resources folder

的網址:http://localhost:8080/gestionprojet/Project/angularjs

我的控制器:所有的

@RequestMapping("/angularjs") 
public String getAngularJs() { 
    return "AngularJs"; 
} 
+0

問題是什麼?你在控制檯上看到什麼錯誤? – Sajeetharan

+0

什麼都沒有,視圖被呈現,並在瀏覽器上我看到'{{lastname}}' –

+0

你有沒有在你的應用程序中引用angularjs? – Sajeetharan

回答

1

首先,你的文件在/ WEB-INF /資源,但你已經配置了春天從/資源加載靜態資源。所以他們根本無法服務。這個配置應該是

registry.addResourceHandler("/resources/**") 
     .addResourceLocations("/WEB-INF/resources/"); 

你的網頁的網址是

/gestionprojet/Project/angularjs 

您的網頁嘗試使用相對路徑

applications.js 

所以對應的絕對路徑來加載腳本,瀏覽器尋找JS文件是

/gestionprojet/Project/applications.js 

,它與您選擇爲其提供靜態資源的網址不匹配。假設/gestionprojet是應用程序的上下文路徑,絕對URL應該是

/gestionprojet/resources/applications.js 

所以在JSP的源代碼因此應該

<script src="${pageContext.request.contextPath}/resources/applications.js"></script>