【发布时间】:2026-01-22 23:10:01
【问题描述】:
在 JSF 2.1 应用程序中,我需要构建一个 JSF dataTable(使用 PrimeFaces),它只显示属于登录用户的数据库记录。
所以,我需要将用户名传递给与 dataTable 的 value 属性关联的 bean:
value="#{tableBuilder.records}"
这是表格 bean:
@ManagedBean
@ViewScoped
public class TableBuilder {
private List<MyRecord> records;
private String username;
// getters and setters
}
知道应用程序由单个网页组成,容器管理的身份验证通过LoginBean(一个 SessionScoped ManagedBean)实现,这很有用。这意味着在用户登录时通知 TableBuilder 的额外工作。
我想到的唯一方法是将LoginBean通过@ManagedProperty注解注入TableBuilder,并检查getRecords的每个请求,如果LoginBean的用户名属性发生了变化。
也许有更好的方法?
【问题讨论】:
-
那么,在您的 Web 应用程序中,登录用户可能在视图的初始请求和成功回发到同一视图之间发生变化?
-
正确。可能是第一个用户登录,然后退出,然后另一个用户使用同一个网页登录。
标签: jsf jakarta-ee primefaces facelets