Я хочу написать SPA с AngularJS на стороне клиента и Java EE на стороне сервера. Если я правильно понимаю, идея для frontend состоит в том, чтобы создать страницу по умолчанию (назовем ее index.html
) и реализовать маршрутизацию для обмена частями этой страницы по умолчанию. Таким образом, при каждом запросе загружается страница по умолчанию и логика маршрутизации заменяет его части в зависимости от контекста:Одностраничное приложение с Java EE/Wildfly: конфигурация на стороне сервера
<!-- index.html -->
<html>
<body>
<!-- this block is replaced depending on context -->
<div ng-view></div>
</body>
</html>
<!-- page one -->
<div>
<h1>Page One</h1>
<a href="/specific">Some specific stuff</a>
</div>
<!-- page two -->
<div>
<h1>Page Two</h1>
</div>
Теперь логика маршрутизации может быть что-то вроде этого:
angular.module('myApp', [])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/', {templateUrl: 'pages/pageOne.html'})
.when('/someSpecific', {templateUrl: 'pageTwo.html'})
.otherwise({redirectTo: '/'});
}
]);
Вопрос заключается в том, как связать это с Java EE и экземпляром сервера Wildfly? Если я объявлю index.html
в качестве приветственной страницы и ничего не сделаю, прямые вызовы, такие как http://website.org/someSpecificContext
, потерпят неудачу, потому что никакая страница не отображается на путь (и не должна быть), поэтому никакая страница и никакой угловой код не будут загружены. Если я сделаю перенаправление из всех возможных подпунктов в index.html в фильтр сервлета, информация о пути будет потеряна, поэтому каждый вызов будет завершен на странице индекса. Может быть, это глупый вопрос новичков, но я действительно застрял здесь и буду благодарен за любую помощь.
вы не перенаправлять, вы просто всегда служить index.html ... думаю * виртуальные каталоги * – charlietfl
charlieftl, не могли бы вы указать мне эту тему в терминах сервера? Это должно быть предварительно сконфигурировано сервер/приложение Java EE и как? – hoefling
Я ничего не знаю о java ee ... google search, кажется, показывает много результатов, хотя для этого. Поскольку он стоит прямо сейчас, вы не используете 'html5Mode', поэтому все ваши угловые пути будут иметь' # 'в них и не будут иметь никакого влияния на сервер таким образом. Вам нужно только настроить сервер, если вы используете 'html5Mode' и используете довольно url без' # '. Подавать шаблоны любым способом, вы хотите – charlietfl