myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <mario.buonop...@accenture.com>
Subject RE: Don't understand getValue code of UISelectItems
Date Fri, 25 May 2007 08:34:53 GMT
Should be a problem if the list of values changed between encodeBegin and encodeEnd phase?


Mario

-----Original Message-----
From: David Delbecq [mailto:delbd+jakarta@oma.be] 
Sent: 25 maggio 2007 10.24
To: MyFaces Discussion
Subject: Re: Don't understand getValue code of UISelectItems

Hi Mario,

En l'instant précis du 25/05/07 09:36, mario.buonopane@accenture.com
s'exprimait en ces termes:
>
> Hi, i'm looking the method getValue() of UISelectItems:
>
>  
>
>     public Object getValue()
>
>     {
>
>         if (_value != null) return _value;
>
>         ValueBinding vb = getValueBinding("value");
>
>         return vb != null ? vb.getValue(getFacesContext()) : null;
>
>     }
>
>  
>
> And I see that if a value property of the SelectItemsTag is setted
> with a ValueBinding format, then every time I get getValue() the value
> is rebuilded.
>
Correct
>
> This could be a problem for example in the case I have a property
> value of my managed bead used for value binding that access to DB to
> return the result, because in the life cycle of a page, this
> getValue() is called more than one time. My question  is:
>
> Why the getValueBinding("value") result is not cached? For example:
>
>  
>
>  
>
>     private Object _vb=null;
>
>     private boolean  vbCalculated=false;
>
>  
>
>     public Object getValue()
>
>     {
>
>         if (_value != null) return _value;
>
>         if(!vbCalculated) {
>
>              ValueBinding moment = getValueBinding("value");
>
>              _vb= moment.getValue(getFacesContext());
>
>              vbCalculated=true;
>
>         }
>
>         return _vb;
>
>     }
>
>  
>
>  
>
> Ciao
>
> Mario
>
Let's assume it does it and does not break JSF specification (am sure it
would). Because there is no method specified in JSF api, which myface
must respect, to 'invalidate calculated valuebinding', how can your
application tell all select items of the form that the list of values
changed between the validation and the render phase?
You demonstrated how easy it is to cache a value result, then just do it
in your backing bean and you performance problem is solved. There is no
reason to do that in the jsf itself. JSF does what is told to it, use a
"dynamic" value :)
>
> This message is for the designated recipient only and may contain
> privileged, proprietary, or otherwise private information. If you have
> received it in error, please notify the sender immediately and delete
> the original. Any other use of the email by you is prohibited.
>
Useless disclaimer when posting to mailing list ^-^

Regards,
David



This message is for the designated recipient only and may contain privileged, proprietary,
or otherwise private information.  If you have received it in error, please notify the sender
immediately and delete the original.  Any other use of the email by you is prohibited.

Mime
View raw message