【问题标题】:JSF trying to create a managed propertyJSF 试图创建托管属性
【发布时间】:2013-01-14 20:41:56
【问题描述】:

我有 2 个 bean,一个请求范围和 1 个会话范围。我正在尝试通过创建托管属性来访问请求 bean 中的会话范围 bean,但我一直收到错误消息:

com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean tableBacking.  The following problems were found:
     - Property resultsBacking for managed bean tableBacking does not exist.

这是我的请求范围 bean:

public class TableLookupBacking {

    private ResultsBacking resultsBacking;

    public void setResultsBacking(ResultsBacking resultsBacking) {
            this.resultsBacking = resultsBacking;
    }
}

这是我的会话范围 bean:

public class ResultsBacking {
    // mainly strings and ints stored in here with getters/setters
}

这是我的 faces-config.xml

<managed-bean>
    <managed-bean-name>tableBacking</managed-bean-name>
    <managed-bean-class>backing.TableLookupBacking</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <property-name>resultsBacking</property-name>
        <value>#{resultsBacking}</value>
    </managed-property>
</managed-bean>

<managed-bean>
    <managed-bean-name>resultsBacking</managed-bean-name>
    <managed-bean-class>backing.ResultsBacking</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

【问题讨论】:

  • 也许您需要一个用于 TableLookupBacking 类中的 resultsBacking 的 getter?
  • 我使用的是 jsf 1.2。问题带有此标记。
  • 听起来很奇怪.. 我想你已经部署和清理了你的服务器一千次.. 你可以尝试更改属性名称,JSF 1.2 无法识别属性并且重命名后它们可以工作。但是,您也应该尝试为此使用吸气剂。
  • @XtremeBiker 我将类从 TableLookupBacking 重命名为 TableBacking 并清理了我的项目和服务器,它现在可以工作了。您可以发表您的评论作为答案,以便我给予您信任吗?
  • 好。很高兴知道这一点!

标签: java jsf jsf-1.2


【解决方案1】:

有时 JSF 会放弃识别我们的支持 bean 或 bean 自身名称中的某些属性,这与 IDE/服务器/工具特定 问题有关。当发生这种情况并且您已经多次尝试重新部署和清理项目时,重命名类/属性名称可能是一个技巧。之后,一切都应该再次工作。

【讨论】:

  • 这个问题不是 JSF 特有的。这个问题是特定于 IDE/服务器/工具的。你的回答基本上是不正确的和暗示性的。
  • 我不知道这个问题与什么有关,这是根据我自己的经验得出的答案。你知道另一种解决方法吗?
猜你喜欢
  • 2011-12-25
  • 2013-12-23
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 2012-07-31
  • 2014-12-11
相关资源
最近更新 更多