私は、ユーザーがいくつかのユニットを登録できるJavaEEアプリケーションに取り組んでいます。ユーザーがログインしたときに、各ユニットが別々のタブに表示されるようにしたいと思います。
<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>
バッキングBeanにはこの方法があります
public List<Unit> getUnitsOfLoggedInUser(User user) {
unitsOfLoggedInUser = (List<Unit>) user.getUnitCollection();
return unitsOfLoggedInUser;
}
ただし、ユーザーが新しいユニットを作成した場合、新しいタブはすぐには表示されません。ページを更新しても表示されません。ただし、サーバーを再起動して再度実行すると、新しいタブが表示されます。キャッシュプロパティがあり、呼び出しごとに読み込まれないようです。
また、コードをデバッグするgetUnitsOfLoggedInUser(user)
と、ページがレンダリングされる前にメソッドが複数回呼び出されます。
JSFデータテーブルも試してみましたが、動作は同じなので、Primefacesライブラリの問題ではありません。
誰かがこれをどのように解決できるか提案がありますか?ありがとう