人们!
我在JSF <h:dataTable>
中有一个表,但是当我在我的表中创建一个新的Object(带JPA forward)时,有时会显示但有时不显示。我必须在选项卡中单击以对xhtml的内容进行充值,因为未显示新元素。将对象添加到支持bean的 列表
感谢阅读并抱歉我的英语。
答案 0 :(得分:0)
除了完全重新加载之外,您无法控制辅助bean中的页面,但如果您在某些操作上创建新对象(例如单击按钮),则可以使用ajax执行以下操作:
<h:commandButton actionListener="#{bean.addNewObject}" value="Add">
<f:ajax execute="@this" render="tableId" event="click" />
</h:commandButton>
如果您不想使用ajax并重新加载整个页面,请使用commandButton的action
参数:
<h:commandButton action="#{bean.addNewObjectAction()}" value="Add"/>
其中addNewObjectAction返回null
以重新加载页面。
答案 1 :(得分:0)
显然,您在会话范围中存储数据表的项目列表,而不是在添加新项目时重新加载它。您需要在添加新项目的操作方法中重新加载它。
public void add() {
saveNewItemInDB(newItem);
items = reloadListOfItemsFromDB();
}