Spring Restful Service将所有URL重定向到index.html

时间:2015-12-15 01:34:11

标签: java angularjs spring rest spring-mvc

我正在使用Spring和AngularJS来构建一个网站。我在localhost提供服务:8080 / service / *

我希望所有不以/ service /开头的网址重定向到index.html,以便我可以在Angular中完成所有路由。

因此,如果此人键入任何类型的URL,则Spring将它们发送到index.html

  localhost:8080/products
  localhost:8080/products/343848
  localhost:8080/contact
  localhost:8080/jdfndf

有人可以与我分享如何做到这一点?我发现这篇文章是其他人基本上问同样的问题,但他们从来没有得到一个明确的答案。 Configure Spring MVC with AngularJS

我是Spring和AngularJS的新手,但我找不到任何资源来解释这一点。

1 个答案:

答案 0 :(得分:0)

很抱歉误读了你的问题。 :)

正如我从评论中看到的那样,你必须创建一个单页面应用程序。

要获得所需的结果,您必须使用ng-route,ng-view。

你必须有类似的东西:

<head>
    <script src="script.js"></script>
</head> 
<body ng-app="single-page-app">
<div ng-controller="Controller">
<div>
<nav>
     <ul>
     <li><a href="#/">Home</a></li>
    <li><a href="#/product/{id}">View product</a></li>
    </ul> 
 </nav>   
</div>
 <br/>
 <div ng-view>
<!--
 This DIV loads templates depending upon route.
 -->
</div>
</div>
</body>
</html>

脚本js应如下所示:

(function(){
var routerApp = angular.module("CustomRouter", ['ui.router', 'App']);

routerApp.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/home');

    $stateProvider.state('default', {
        url : '/home',
        templateUrl : 'index.html',
        controller : 'HomeBodyController'
    }).state('product', {
        url : '/product/:productId',
        controller : 'ProductController'
    })
});

})();

这只是一个例子。未经测试的。

Angular JS能够路由。 Angular Js routing

请完成本教程,希望您能了解如何操作。