Передать параметры из backingBean в составной компонент jsf

Я пытаюсь передать некоторые параметры 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?


person Aldeguer    schedule 22.12.2017    source источник


Ответы (1)


Это не может работать. Значение param1 оценивается не сразу, а позже, когда к нему обращаются. Затем составной компонент оценивает ValueExpression в param1 и в ходе этого пытается найти bean-компонент с именем «backingBeanRef», который не существует (об этом уже сообщает вам сообщение об ошибке). Почему бы вам не использовать следующее?

<cc:myCc param1="#{myBean.attribute}" />
person Alex Fire    schedule 12.01.2018
comment
Это то, что я использую, но я пытался параметризовать представление, чтобы я мог включить его из нескольких xhtml, управляемых разными bean-компонентами, и все работало, но составные компоненты - person Aldeguer; 13.01.2018