【发布时间】:2011-07-09 06:46:36
【问题描述】:
我有一个页面,当用户登录时,他将显示他最近创建的 15 条记录的列表。jsf 页面有两种形式,一种形式是搜索条件和命令按钮的字段很少。另一种形式是有一个数据表,它将获取记录并显示它。在数据表的最后一列中,根据状态显示了一些链接。
为了在 h:datatable 标记中显示记录,我使用了一个支持 bean RecordSearchBean 属性记录,如果该 bean 的搜索属性为空,它将获取记录。 RecordSearchBean 具有属性:
fromDate(用于搜索条件) toDate(用于搜索条件) 记录(用于显示记录) fetchRecords()(获取用户最近15条记录的方法) searchRecords(ActionEvent e)(由jsf页面上的搜索按钮调用)
公开列表 getRecentRecord(){
if(fromDate==null && toDate == null){ this.records=fetchRecords(); } 返回 this.records; }
公开列表 fetchRecords(){ //获取记录列表的代码 }
公共无效搜索记录(ActionEvent e){ //根据搜索条件获取记录的代码 列出 searchedRecords=getREcords(this); this.records=搜索记录; }
这个 RecordSearchBean 在请求范围内。
我在 jsf 中所做的是当用户登录时,他将获取由 records 属性填充的记录并显示在数据表中。
当用户点击 jsf 页面上的搜索按钮时,records 属性将由 searchRecords actionlistener 填充。 到那时一切正常,但是当我点击记录最后一列中数据表提供的任何链接时,我再次获得用户登录时显示的记录列表。
菜单中有一个主页选项卡,当用户单击该选项卡时,他将获得15条记录的列表,该列表在用户登录时显示给用户。
我认为这个问题与 jsf 托管 bean 范围有关。如果我将更改 bean 的范围,那么 databale 最后一列中的每个链接都可以正常工作。
在这种情况下,如果用户点击主页,那么他将不会得到他登录时获得的记录列表。
请帮帮我。
【问题讨论】:
标签: jsf