I'd suggest seeing a stacktrace to find out what phase this is
being invoked in.  RequestContext.isPostback() doesn't work
until the end of Restore View phase, and I suspect your
code is being called during Restore View.

-- Adam


On 6/4/07, Francisco Passos <[EMAIL PROTECTED]> wrote:

Actually yes, I was using JSF 1.2 but since my application server
(Weblogic 9.2) doesn't support J2EE 5, I decided to switch to 1.1 for full
compatibility.

The full scenario is this: I have request-scoped beans that need to be
initialized (load properties from database). I'm using t:saveState to keep
the values between subsequent requests.

In order for my init method to be called for these beans, I created an
abstract bean (which my concrete beans extend) with the following:


protected boolean initialized = false;

public abstract void init() throws Exception;

public final void setInitialization(String value) {
        if (!isPostback()) {
            initialize();
        }
    }

public final void initialize() {
        if (!initialized) {
            try {
                init();
                initialized = true;
            } catch (Exception e) {
                ...
            }
        }
    }

protected final boolean isPostback() {
        RequestContext context = RequestContext.getCurrentInstance();
        if (context == null) {
            return false;
        }
        return context.isPostback();
    }

The entry point is the setInitialization method. To ensure it gets called,
I created a managed-property in each of my beans (in faces-config.xml).

I don't know which phase it gets called in, but a while ago it worked
extremely well and in conjunction with Tomahawk's saveState, for subsequent
requests only the first would be initialized, whereas now, all of them are
:(

Should I switch back to 1.2? Is there anything I can do to use 1.2 in a
non-J2EE compliant app-server with any degree of confidence?

Thank you,
Francisco

On 6/1/07, Adam Winer <[EMAIL PROTECTED]> wrote:
>
> I don't think there've been any changes in Trinidad.  Have
> you changed the version of JSF you're using?  At
> what point in the JSF lifecycle are you calling
> isPostback()?
>
> -- Adam
>
>
> On 6/1/07, Francisco Passos < [EMAIL PROTECTED]> wrote:
> > Good afternoon.
> >
> > Have there been any changes to the underlying mechanism of
> > RequestContext.isPostback since version 1.0.0-incubating?
> >
> > I've noticed that returning null after executing an action triggered
> by a
> > button, for instance, is no longer considered a postback. Is this true
> and
> > if true, is it intended?
> >
> > By the way, having a <tr:commandButton text="simulate postback" /> is
> no
> > longer detected as one :S and it doesn't even define the action...
> >
> > Thank you,
> > Francisco
> >
>


Reply via email to