short addition to your last question: h:link triggers a get-request. for post requests you need h:commandLink
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/24 Gerhard Petracek <gerhard.petra...@gmail.com> > hi pieter, > > to avoid side-effects you should always use such jsf components. > if you really have to use a plain link - the solution would be: > <a > href="#{facesContext.externalContext.request.contextPath}/myPage.xhtml?windowId=#{currentWindow.id}">My > Page</a> > that's for sure more verbose than the version with h:link: > <h:link value="My Page" outcome="myPage"/> > > @ViewScoped: > besides some other disadvantages, that's the behaviour specified by jsf2. > codi doesn't implement this scope itself. it just provides an adapter for > cdi which delegates to the default implementation of jsf2. > so it's better to use one of the scopes which are completely implemented by > codi itself. > > 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/24 Pieter Martin <pieter.mar...@gmail.com> > >> Hi, >> >> Thanks for the reply and demo. >> >> I see the difference is that I have been navigating to the new pages via a >> browser url get request. >> I tried it now with a <h:link /> and then the @PreDestroy gets called. >> >> Is it suppose to work via get request? >> >> Thanks >> Pieter >> >> >> >> >> On 24/06/2011 19:01, Gerhard Petracek wrote: >> >>> 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://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 >>>>>> >>>>>> >>>>>> >>>>>> >> >