我使用JSF和PrimeFaces实现了一个登录表单。我使用了PrimeFaces展示网站上的这个例子。
我有一个Facelets页面来显示dataTable。现在我需要将上述登录表单与此表格页面集成。因此,我在LoginBean.java中添加了几行代码来处理会话属性。
我有一个Facelets页面来显示dataTable。现在我需要将上述登录表单与此表格页面集成。因此,我在LoginBean.java中添加了几行代码来处理会话属性。
if (username.equals(getUsername_db()) && password.equals(getPassword_db())) {//valid user and paward
loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", getUsername_db());
//new lines
FacesContext context2 = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context2.getExternalContext().getSession(true);
session.setAttribute("user", username);
//end of new lines
...
如果用户未登录,则需要从dataTable中隐藏某一列。我的问题是如何在Facelets页面内访问会话属性?
username
根本不是一个String
。也许你在问题中过于简化了代码?顺便说一下,SQL 注释并不是暗示要使用预编译语句的。你在比较用户名和密码时进行了两次比较(一次在数据库中,另一次在 Java 中)。这毫无意义。只需检查 DB 是否返回了一条记录即可。你不需要再次比较已经要求 DB 检查和返回的用户名/密码。 - BalusC