You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Werner Punz <we...@gmail.com> on 2007/05/23 19:17:33 UTC
Re: Started using Myfaces 1.1.5 and every page is broken (duplicate
ID in the faces tree Component)
SiSi'mon schrieb:
> I am not sure what a session scoped component binding is.
>
> do you mean a session scoped backing bean? We are using Spring IOC to
> manage the backing beans and only have one that is session scoped.
>
> thanks
>
> Si'mon
>
>
Well following, if you have referenced this bean into something like:
<component binding="#{sessionbeanbean.bindingattribute}" /> and this
bean is session scoped or even worse application scoped in spring then
you run into this problem.
You can however since you use spring anyway and if you do not want to
omit the session scope of your bean make the binding request scoped
nevertheless.
Spring 2 has the aop:scoped proxy mechanism, which you can use to wrap a
request scoped proxy once the session scoped bean references your
binding object around it.
Which means a contstruct like that:
<component
binding="#{sessionbeanbean.componentbindingholder.bindingattribute}" />
can work even if the bean is session scoped if the
componentbindingholder is request scoped and has the aop:proxy construct
around it.
(Sorry for going so deeply into spring)
what this means is following:
<bean id="componentbindingholder" scope="request">
<aop:scoped-proxy />
</bean>
<bean id="sessionbean" scope="session" class="....">
<property name="componentbindingholder"
ref="componentbindingholder" />
</bean>
what happens now is
that both beans are ioc glued together but, the contents of the
componentbindingholder is dropped at every request, while its proxy
shell stays the same the entire session.
Sorry for digging in so deep into spring, but this stuff is pure genious
and definitely a good way to avoid the session scoped component binding
problem. (It is a must have if you start to work with conversation based
frameworks)
Werner