我正在开发一个 Java EE 应用程序,用户可以在其中注册一些单元。我希望在用户登录时每个单元都显示在单独的选项卡上。
<p:tabView id="unitTabs" cache="false" var="unit" value="#{getUnitsOfLoggedInUser(loginController.checkedUser)}">
<p:tab id="unitTab" title="#{unit.unitName}">
//content here
</p:tab>
</p:tabView>
在backing bean中我有这个方法
public List<Unit> getUnitsOfLoggedInUser(User user) {
unitsOfLoggedInUser = (List<Unit>) user.getUnitCollection();
return unitsOfLoggedInUser;
}
但是,如果用户创建一个新单元,则不会立即呈现新选项卡。即使我刷新页面,它仍然不显示。但是,如果我重新启动服务器并再次运行,新选项卡将在那里。似乎它具有一些缓存属性,并且不会在每次调用时加载。
此外,当我调试代码时,该方法getUnitsOfLoggedInUser(user)
在页面呈现之前被多次调用。
我也尝试过使用 JSF 数据表,但它的行为相同,所以这不是 Primefaces 库的问题
有没有人有任何建议我该如何解决这个问题?谢谢