gpt4 book ai didi

java - JBoss Seam 可以在使用登录页面后重定向用户的 "Last Visited Page"吗?

转载 作者:行者123 更新时间:2023-12-01 05:06:18 25 4
gpt4 key购买 nike

注意

我有ServletFilter用于通过 <url-pattern> 检查用户是否已经登录。如果用户未登录,则重定向到 login.xhtml .

我的问题

用户登录后,我的程序总是重定向dashboard.xml (基于 navigation-rule )。我想重定向last visited page自动地。您能提供可能的方法吗?

目前我的解决方案适用于此

但是,我不乐意使用它。是Seam支持?您能提供更好的方法吗?

在我的ServletFilter ,我保留上次访问的页面如下

AuthenticationFilter.java

httpSession.setAttribute(Constants.ORIGINAL_VIEW_KEY, requestPath);

在我的LoginBean ,在用户登录后重定向最后访问的页面。

LoginBean.java

ELContext elContext = facesContext.getELContext();
Application application = facesContext.getApplication();
ExpressionFactory eFactory = application.getExpressionFactory();
ValueExpression binding = eFactory.createValueExpression(elContext, "#{" + Constants.VISIT_KEY_SCOPE + Constants.VISIT_KEY + "}", Visit.class);
binding.setValue(elContext, visit);

ValueExpression originalViewBinding = eFactory.createValueExpression(elContext, "#{" + Constants.ORIGINAL_VIEW_SCOPE + Constants.ORIGINAL_VIEW_KEY + "}", String.class);

String originalViewId = (String) originalViewBinding.getValue(elContext); <--- last visited view id.

UIViewRoot viewRoot = application.getViewHandler().createView(facesContext, originalViewId) ;
facesContext.setViewRoot(viewRoot);
facesContext.renderResponse();

最佳答案

从login.page.xml中删除以下内容

<navigation from-action="#{identity.login}">
<rule if="#{identity.loggedIn}">
<redirect view-id="/view/dashboard.xhtml"/>
</rule>

关于java - JBoss Seam 可以在使用登录页面后重定向用户的 "Last Visited Page"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com