我有一个使用Angular JS构建的应用程序 它有3个视图说(A,B和C) 这就是我配置路线参数的方法。
.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是具有ng-view的默认页面 因此,默认情况下始终在身份验证后加载视图A.
现在我的情况是当用户请求从B或C登录时,他必须在身份验证后重定向到该视图。
我试过 request.getRequestDispatcher(“index.jsp#/ B”);
但这不起作用。
有关如何实现这一目标的任何建议?
答案 0 :(得分: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")