我有登录页面和仪表板页面。
一旦显示登录过程完成仪表板页面(使用导航规则)。
<navigation-rule>
<from-view-id>/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>dashboard</from-outcome>
<to-view-id>/viewp/dashboard.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
我有所有请求的过滤器映射。
这是我的方案,我的仪表板页面上有客户端轮询器。当服务器重新启动时,轮询器发送将由Filter解释的请求。
Inside Filter我有像
这样的逻辑If(url.contains("login.xhtml))
{
//dofilter
}else
{
// redirect to login.
}
但不知何故,这不是重定向。
我的一个观察是,登录后即使我在仪表板页面上,我的网址仍然是mydomain/login.xhtml
。我认为,因为浏览器中的网址为mydomain/login.xhtml
,response.redirect("mydomain/login.xhtml")
无效。有什么建议吗?
谢谢,
答案 0 :(得分:1)
poller由JavaScript / Ajax执行,对吧?好吧,如果服务器返回302而不是200并且相应地处理,你必须检查JavaScript / Ajax。对于返回的JavaScript / Ajax响应,浏览器本身不会自动执行此操作,但仅针对同步请求的响应。
您可以在JavaScript中使用window.location
来执行“重定向”。 E.g。
if (ajaxResponseStatus == 302) {
window.location = newURL;
}