JSF - 没有重新加载内容
Posted
技术标签:
【中文标题】JSF - 没有重新加载内容【英文标题】:JSF - No reload content 【发布时间】:2011-05-25 19:25:54 【问题描述】:伙计们!
我在 JSF <h:dataTable>
中有一个表,但是当我在表中创建一个新对象(使用 JPA 转发)时,有时它会显示,但有时不会。我必须单击一个选项卡来重新加载 xhtml 的内容,因为没有显示新元素。 从支持 bean 将对象添加到列表后,我可以重新加载页面吗?
感谢您的阅读,对不起我的英语。
【问题讨论】:
【参考方案1】:显然,您将数据表的项目列表存储在会话范围内,而不是在添加新项目时重新加载它。您需要在添加新项目的action方法中重新加载它。
public void add()
saveNewItemInDB(newItem);
items = reloadListOfItemsFromDB();
【讨论】:
【参考方案2】:除了完全重新加载之外,您无法从支持 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
以重新加载页面。
【讨论】:
以上是关于JSF - 没有重新加载内容的主要内容,如果未能解决你的问题,请参考以下文章