代码之家  ›  专栏  ›  技术社区  ›  Aldeguer

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

  •  0
  • Aldeguer  · 技术社区  · 7 年前

    我正在尝试将一些参数传递给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传递参数?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alex Fire    7 年前

    这是行不通的。param1的值不会立即计算,但会在稍后访问时计算。然后,复合组件对param1中的ValueExpression求值,并在求值过程中尝试找到一个名为“backingBeanRef”的bean,该bean不存在(这是错误消息已经告诉您的)。为什么不使用thw following?

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