在JSF 1.2中实现登录页面的最佳方法是什么?如果会话超时,则将重定向到登录页面。我在互联网上找到了2种方法。
我也希望用户在登录页面后立即浏览协议页面。用户需要点击“同意”按钮继续使用该系统。
任何人都可以告诉我哪个选项更好或是否有更好的方法来实现它。
谢谢,
答案 0 :(得分:2)
在JSF 1.2中实现登录页面的最佳方法是什么?
只需使用带有<h:form>
的JSP / Facelet页面和适当的输入元素以及将用户置于注入的会话范围bean中的辅助bean。
如果会话超时,则会将使用重定向到登录页面。我在互联网上找到了2种方法。
绝对使用Filter
。对于这个简单的用例,PhaseListener
有太多开销。您对过滤/修改JSF生命周期不感兴趣,只是过滤/修改HTTP请求。
那么,那么只是开发这样一个页面?如果您卡住,请按右侧顶部的我也希望用户在登录页面后立即浏览协议页面。用户需要点击“同意”按钮继续使用该系统。
Ask Question
,并详细说明实际问题。
答案 1 :(得分:0)
Filter
总是更好用于此,也更适合。
现在满足您的要求,
成功登录 - 将adminBean保存到会话中 接受条款 - 更新这个bean的字段
答案 2 :(得分:0)
在JSF2中,可以使用系统事件来完成。在您的模板页面中输入
< f:event type="preRenderView" listener="#{loginBean.checkLogin}"/>
并在loginBean中(使其成为会话作用域)你可以这样做
public void checkLogin(ComponentSystemEvent event) {
// loggedIn is a boolean variable when sucessfully logged in make it true and at logout make it false.
if (!loggedIn) {
FacesContext context = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler handler = (ConfigurableNavigationHandler)
context.getApplication().getNavigationHandler();
handler.performNavigation("login");
}
}