That I can do... :)

Attached...


BTJ

On Fri, 7 Nov 2014 16:14:55 -0500
"Howard W. Smith, Jr." <smithh032...@gmail.com> wrote:

> That's fine.
> 
> Can you provide your XHTML and java bean definition (source code) here? You
> provided a little bit of your java bean in primefaces forum.
> 
> Your XHTML and java bean may help us on this list to help you.
> 
> 
> On Fri, Nov 7, 2014 at 4:11 PM, Bjørn T Johansen <b...@havleik.no> wrote:
> 
> > Yes, I did.. But since I did not get any answer there and I thought that
> > this was more a JSF question than a PrimeFaces question, I thought I should
> > try here.... Was that wrong?
> >
> > BTJ
> >
> > On Fri, 7 Nov 2014 15:58:59 -0500
> > "Howard W. Smith, Jr." <smithh032...@gmail.com> wrote:
> >
> > > Interesting, you asked the same question in PrimeFaces forum.
> > >
> > > http://forum.primefaces.org/viewtopic.php?f=3&t=40267
> > >
> > >
> > > On Fri, Nov 7, 2014 at 3:42 PM, Bjørn T Johansen <b...@havleik.no> wrote:
> > >
> > > > I trying to create a webapplication using request and/or viewscope
> > instead
> > > > of sessionscope, which I have always used... (Neved needed to concern
> > > > myself with memory usage in the apps I have implemented.. :) )
> > > > But I now have a problem using @ViewScoped..
> > > > When I access index.xhtml which uses a managed bean in viewscope, the
> > > > constructor is called multiple times. And the same with an init
> > method, that
> > > > should be called only once. I am using..:
> > > >
> > > > <f:metadata>
> > > >     <f:viewAction action="#{calendarController.initPrices}" />
> > > > </f:metadata>
> > > >
> > > > <h:head>......
> > > >
> > > > to call the init method, but I have also tried using f:event
> > prerenderView
> > > > and also @PostConstruct but I am not able to make the bean call the
> > init
> > > > method only once...
> > > >
> > > > What am I missing?
> > > >
> > > >
> > > > Regards,
> > > >
> > > > BTJ
> > > > --
> > > >
> > > >
> > -----------------------------------------------------------------------------------------------
> > > > Bjørn T Johansen
> > > >
> > > > b...@havleik.no
> > > >
> > > >
> > -----------------------------------------------------------------------------------------------
> > > > Someone wrote:
> > > > "I understand that if you play a Windows CD backwards you hear strange
> > > > Satanic messages"
> > > > To which someone replied:
> > > > "It's even worse than that; play it forwards and it installs Windows"
> > > >
> > > >
> > -----------------------------------------------------------------------------------------------
> > > >
> >
> >

Attachment: index.xhtml
Description: application/xhtml

package no.havleik.kbnjulekalender.controller;

import no.havleik.kbnjulekalender.model.Price;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Bjørn T Johansen on 26.10.2014
 */
@ManagedBean(name = "calendarController")
@ViewScoped
public class CalendarController implements Serializable
{
    private static final long serialVersionUID = 108478021854906487L;

    private static final Logger log = LoggerFactory.getLogger(CalendarController.class);

    @ManagedProperty(value="#{priceController}")
    private PriceController priceController;

    List<Price> priceList = new ArrayList<>();

    public CalendarController()
    {
        super();
        System.out.println("Constructor of CalendarController");
        //log.debug("All prices size = {}", priceController.getPriceListAll().size());
    }

    public String initPrices()
    {
        log.debug("Initializing prices...");
        priceList.clear();
        for (Price price : priceController.getPriceListAll())
        {
            priceList.add(price);
        }

        return null;
    }

    public List<Price> getPriceList()
    {
        return priceList;
    }

    public void setPriceController(PriceController priceController)
    {
        this.priceController = priceController;
    }
}

Reply via email to