Не обновляется ли управляемое свойство, не являющееся компонентом, в целевом компоненте с изменением свойства в исходном компоненте в JSF? То же самое может быть верно и наоборот

Я использую свойство внутри одного компонента как управляемое свойство внутри другого.

Проблема, с которой я сталкиваюсь, заключается в изменении свойства внутри исходного компонента. Управляемое свойство целевого компонента НЕ обновляется. Если Java использует ссылки вместо создания нового объекта в памяти, это не должно происходить, но это так.

Обе мои бобы имеют сессионную область. Влияет ли это на инъекцию имущества? Означает ли это, что изменение вида НЕ инициализирует инъекцию, если бины имеют сессионную область? Даже тогда, это идет вразрез с идеей ссылки, которую BalusC высказал в комментарии к этому ответу.

Как получить свойство управляемого боба от другого компонента в JSF

1 ответ

Решение

Очевидно, вы ссылаетесь на свойство целевого компонента напрямую, а не на сам целевой компонент.

Ниже действительно неправильно:

@ManagedProperty("#{otherBean.property}")
private String otherBeanProperty;

String является неизменным, и вы в основном копируете собственность. Это не изменчиво по ссылке.

Вместо этого вы должны делать:

@ManagedProperty("#{otherBean}")
private OtherBean otherBean;

и затем получить желаемое свойство его получателем в любом из методов исходного компонента.

Другие вопросы по тегам