我有一个报告生成页面,其中我有几个过滤器countryId,Date以及一些其他参数供用户选择.现在基于所选参数,有一个数据库调用,它使用这些参数来获取结果列表.
现在托管bean包含所有这些搜索参数和结果列表.让我们将此bean命名为 Bean1
public class Bean1 implements Constants{
private List<SelectItem> countryList;
private List<String> choosenCountryList;
private List<String> choosenProgramList;
private String invoiceDatePriorTo= CalendarUtilities.getTodaysDate() ;
private List<CustomResults> searchResultList
}
Run Code Online (Sandbox Code Playgroud)
我们还有一个托管bean Bean2,它包含一个属性Bean1
public class Bean2 implements Constants {
private Bean1 bean1;
public getSearchResults(){
//Code for fetching the search list for bean 1
this.setsearchResultList() //=fetched list from DB;
}
public modifySearchResults(){}
}
Run Code Online (Sandbox Code Playgroud)
现在当我们从JSF页面触发一个动作时,我们调用该getSearchResults()方法并将其设置为searchResultList在屏幕上显示.这样我们就可以在屏幕上显示搜索列表
现在我们得到的列表会在屏幕上进行用户修改.现在我们再次调用modifySearchResults来编辑列表时,我们无法检索bean2中的列表,因为托管bean在请求范围内.
谁能告诉我如何继续解决这个问题?
Jig*_*shi 11
只需将您的dataBean声明为ManagedProperty.
从标记我认为它是关于JSF2.0.
您需要在中声明bean1为托管属性bean2.
应该是这样的
@ManagedBean
public class Bean1{
}
Run Code Online (Sandbox Code Playgroud)
和
@ManagedBean
public class Bean2{
@ManagedProperty(value="#{bean1}")
Bean1 bean1;
//setter & getter of bean1
}
Run Code Online (Sandbox Code Playgroud)
也可以看看
| 归档时间: |
|
| 查看次数: |
20972 次 |
| 最近记录: |