Hi Randahl,
look into Trinidad and the StateManager for an alternative.
regards,
Martin
On 10/18/06, Randahl Fink Isaksen <[EMAIL PROTECTED]> wrote:
I was wondering if there were any alternatives to this approach of creating
and populating arrays in each and every one of your components - has anyone
tried using reflection to do all of this automatically. Surely for simple
components one could easily run through its getter methods and extract the
values to generate the Object[] automatically.
Has anyone tried such alternative approaches?
Randahl
Cagatay Civici wrote:
The example you posted is the old code of UISaveState. It's has a special
usage.
Actually you don't need to care about valuebindings. There is a special map
that holds the valuebindings of a component in UIComponentBase, this map is
saved-restored in each postback.
On 10/18/06, Randahl Fink Isaksen <[EMAIL PROTECTED]> wrote:
> Actually I finally found an example on the web in which the restoreState
> method actually takes responsibility of restoring the value bindings
> internal state (see below) - can anyone confirm that this is the right
> approach for properties with value bindings?
>
> Randahl
>
>
> public Object saveState(FacesContext context) {
> Object values[] = new Object[2];
> values[0] = super.saveState(context);
> values[1] = getValue();
> return values;
> }
>
> public void restoreState(FacesContext context, Object state) {
> Object values[] = (Object[]) state;
> super.restoreState(context, values[0]);
> Object savedValue = values[1];
> ValueBinding vb = getValueBinding("value");
> if (vb != null) {
> vb.setValue(context, savedValue);
> }
>
>
>
>
> Randahl Fink Isaksen wrote:
> > I have been looking through a number of MyFaces components to see how
> > state saving was implemented, and it turns out that all the components
> > I have checked simply implement the saveState and restoreState methods
> > by returning an Object[] containing their private properties.
> >
> > But I keep asking myself "what about value bound properties?" If I
> > have a component which has a property X which may be bound to
> > #{someBean.someProperty} does that not mean that I need to restore the
> > value of the value binding?
> >
> > I would expect that restoreState should check if X was bound with a
> > value binding and then restore the value of the value binding instead.
> > Could anyone please elaborate? Thanks.
> >
> > Randahl
> >
> >
> >
>
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces