繁体   English   中英

托管bean作为托管属性

[英]managed beans as managed properties

我正在WebSphere 6.1上使用JSF 1.1。 我正在构建应用程序中的搜索功能,并且遇到了一些问题。 我已经剔除了多余的部分,并留下了以下内容:

4个托管bean:

  • SearchController-控制器bean,会话范围
  • SearchResults-会话范围(存储结果)
  • ProductSearch-会话范围(存储搜索条件)
  • ResultsBacking-DataTable的后备bean,用于确定单击了哪一行,请求范围

SearchController bean具有其他3个作为托管属性。除了ResultsBacking之外,所有bean都是会话作用域的。

如果搜索结果中只有1个项目,我想直接显示该记录。 我在ResultsBacking方法中为数据表调用setFirst(0)(我想使用现有方法来处理单击了哪个项目,因此在setFirst之后立即调用它)。

当我进行另一次搜索时,在数据表中调用getRowData时会收到IllegalArgumentException。 根据api,这将引发“如果当前指定的行索引处现在有行数据可用”。

我对为什么会这样感到困惑。 它第一次起作用,但第二次不起。 我是否需要在新搜索中删除ResultsBacking才能摆脱旧状态?

在备用bean的getFirstRow方法中,我在databable上调用了setFirst(0)。 将其更改为setRowIndex(0)可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM