注意在使用登錄登錄頁面後,JBoss Seam是否可以重定向用戶的「上次訪問頁面」?
我有ServletFilter
這是用來檢查用戶是否已經登錄或不使用<url-pattern>
。如果用戶未登錄,則重定向到login.xhtml
。
我的問題
用戶登錄後,我的程序總是被重定向dashboard.xml
(基於navigation-rule
)。我想自動重定向last visited page
。你能爲此提供可能的途徑嗎?
目前我Soluction是針對
工作,但是,我不開心使用它。 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();
我的問題是最後訪問的網頁 – CycDemo
你想要用戶返回到網頁上,他是他最後一次在網站上? Seam默認不提供該功能,您應該添加一個全局頁面操作,該操作存儲(例如在數據庫上)當前頁面的視圖ID,然後在登錄時將其重定向到該視圖,檢查源代碼**重定向**組件的線索如何重定向 – AndresQ