hi pieter,

based on the archetype i created a demo [1].
i just added a view-access-scoped bean and accessed it on the second page.
in the @PostConstruct callback a message gets added which you can see on the
page.
the @PreDestroy callback writes the message to the console because the bean
gets destroyed >after< the rendering process (if it wasn't accessed by the
new page) - so you won't see a message on the page (if you would add one
like in the @PostConstruct callback).

you can start the demo e.g. with:
mvn clean jetty:run-exploded -PjettyConfig

regards,
gerhard

[1]
http://people.apache.org/~gpetracek/myfaces/codi/demos/view-access-scope-demo.zip

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2011/6/24 Pieter Martin <pieter.mar...@gmail.com>

> Hi,
>
> I have tested as you mentioned but the @PreDestroy still does not get
> called.
>
> I am using the jsf application as generated with the maven archetype.
>
> I am however running it in embedded jetty mode, i.e. view a main method.
> I have a META-INF/beans.xml in the src/main/resources dir.
>
> page1 = helloWorld.xhtml which references the WindowScoped
> HelloWorldController
> page2 = testViewAccessScoped.xhtml which references a ViewAccessScoped bean
> - PostConstruct called
> page1 = helloWorld.xhtml, ViewAccessScoped - PreDestroy not called, as
> expected
> page1, again = helloWorld.xhtml, ViewAccessScoped - PreDestroy not called,
> expected it to be called
> page3 = helloWorld2.xhtml which references the WindowScoped
> HelloWorldController - PreDestroy not called, expected it to be called
> page4 = testViewAccessScoped2.xhtml which references a different
> ViewAccessScoped bean - PostConstruct called, PreDestroy not called
> page2 = testViewAccessScoped.xhtml which references a ViewAccessScoped bean
> - PostConstruct called and PreDestroy called on page4's ViewAccessScoped
> bean
>
>
> I can only get PreDestroy called if I navigate from a ViewAccessScoped
> directly to another ViewAccessScoped page.
>
> Using @ViewScoped I can not get PreDestroyed to be called at all.
> Using @ViewScoped if I F5 on the page @PostConstruct is called everytime
> and @PreDestroy never
>
> Thanks
> Pieter
>
>
>
> On 23/06/2011 23:11, Gerhard Petracek wrote:
>
>> hi pieter,
>>
>> first of all welcome @ myfaces!
>> as long as the bean is referenced by a page - the bean will be available
>> for
>> the next page. after rendering the first page which doesn't use the
>> view-access scoped bean it will be destroyed (that's independent of other
>> beans).
>>
>> regards,
>> gerhard
>>
>> http://www.irian.at
>>
>> Your JSF powerhouse -
>> JSF Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>> 2011/6/23 Pieter Martin<pieter.mar...@gmail.com**>
>>
>>  Hi,
>>>
>>> I trying to use @ViewAccessScoped beans but am not getting the expected
>>> behavior.
>>>
>>> I notice that @PreDestroy only gets called when I navigate from a page
>>> using a particular ViewAccessScoped bean to another page using a
>>> different ViewAccessScoped bean.
>>>
>>> I expected @PreDestroy to be called whenever I navigate to a different
>>> view. i.e. if a navigate from a page with a ViewAccessScoped bean to a
>>> page with a ApplicationScoped or WindowScoped backing bean @PreDestroy
>>> does not get called.
>>>
>>> Is this a bug?
>>>
>>> I am using CODI version 0.9.5 and MYFACES 2.1.1
>>>
>>> Thanks
>>> Pieter
>>>
>>>
>>>
>

Reply via email to