将参数从 backingBean 传递到 jsf 复合组件

Pass parameters from backingBean to jsf composite component

我正在尝试将一些参数传递给 myCc,如下所示:

<c:if test="${empty backingBeanRef}">
    <c:set var="backingBeanRef" value="#{myBean}" />
</c:if>

<!-- some code-->

<cc:myCc 
    param1="#{backingBeanRef.attribute}" />

<!-- some code-->

但我收到以下错误:

Target Unreachable, identifier 'backingBeanRef' resolved to null

我知道它不为空,因为我在包含 myCc 之前和之后都在使用它。如果我将参数作为 param1="#{myBean.attribute}" 传递,一切正常。

如何从 backingBeanRef 传递参数?

这行不通。 param1 的值不会立即计算,而是在访问它时计算。然后,复合组件计算 param1 中的 ValueExpression,在此过程中,它试图找到一个名为 "backingBeanRef" 的 bean,但该 bean 不存在(错误消息已经告诉您)。你为什么不使用以下内容?

<cc:myCc param1="#{myBean.attribute}" />