【发布时间】:2011-11-11 20:16:44
【问题描述】:
我有一个页面 tables.jspx,它显示了所有表的数据表,并有一个指向 createTable.jspx 的链接;当我创建一个新表时,它返回到 tables.jspx 但它没有显示新表的列表。 (tablesBean 和 createTableBean 是请求范围)。我按照 BalusC 教程 http://balusc.blogspot.com/2006/06/using-datatables.html 懒惰地初始化 getter 中的表列表。就我现在而言,如果我的 bean 是请求范围的,在请求完成后不应该被销毁吗?导航来自 tables.jspx -->createTable.jspx --> tables.jspx。我希望在创建新表后返回到显示新表和新表的表列表。请帮助我理解我做错了什么。
这是我的代码,它返回我在 getter 中的表列表(简化):
public List getTables(){
if(tables==null){ //lazy initialization for a request bean as recommended by BalusC
//Return list of tables
}
但是如果我改变这一行
if(tables==null)
为if(tables==null ||FacesContext.getCurrentInstance().getRenderResponse())
当我从 createTable.jspx 返回时,我的列表已实现,建议在 bean 处于会话范围内时进行更改,但这给我的 dataPaginator 和我的 sortColumn 函数带来了问题(因为它在我按列对列表进行排序,它返回错误的行进行编辑,因为我在每一行中都有一个用于编辑和删除的链接)
【问题讨论】: