2014-09-14 2 views
0

У меня есть приложение, построенное с использованием Angular JS.
Имеет 3 вида: (A, B и C).
Вот как я настроил параметры маршрута.Угловой JS + Java Servlet Route Issue

.config(function ($routeProvider){ 
$routeProvider 
.when('/',{ 
    controller:'aController', 
    templateUrl: 'jsps/a.jsp' 
}) 
.when('/b',{ 
    controller:'bController', 
    templateUrl: 'jsps/b.jsp' 
}) 
.when('/c',{ 
    controller:'cController', 
    templateUrl: 'jsps/c.jsp' 
}) 
.otherwise({redirectTo:'/'}); 

});

Все три вида имеют Вход Ссылка. Нажатие на LogIn перенаправит пользователя на другую страницу в моем приложении.

Login - это форма, которая вызывает LoginServlet и успешную аутентификацию. Я перенаправляю пользователя в свое приложение.

RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); 
rd.include(request,response); 

Я также попытался с rd.forward (запрос, ответ)

index.jsp является страницей по умолчанию, который нг-вид.
Таким образом, по умолчанию всегда просмотр A загружается после аутентификации.

Теперь моя ситуация, когда пользователь запрашивает логин от B или C, он должен быть перенаправлен на это представление после аутентификации.

Я пробовал request.getRequestDispatcher ("index.jsp #/B");
Но это не работает.

Любые предложения о том, как это можно достичь?

ответ

1

URL-адрес фрагмента #/b не отправляется на сервер (см. Get anchor from URI для получения дополнительной информации). Если вам нужна эта информация на сервере, вам нужно использовать параметры запроса. Решение будет (псевдокод)

  • Вставить эту информацию в качестве параметра запроса в Логин связи, например: <a href="/login?from=/b"></a>
  • Использование скрытого поля ввода в форме входа для удержания параметра запроса «от» <input type="hidden" name="from" value="${param.from}"> Следовательно, это будет доступный на сервере при отправке формы входа.
  • После авторизации на перегородке "index.jsp#" + request.getParameter("from")