A standard EL expression evaluator cannot and MUST never cache results.
Imagine the following expression:
<h:outputText>#{someBean.nextCounterValue}></h:outputText>
The app developer would not be very happy if EL caches that result, right?

So caching can only be a matter for the model.
OR: you write your own custom ELResolver that somehow "knows" which
values to cache and which it should not cache. Perhaps by inspecting
the annotations of your getters? I could imagine a custom @Cacheable
annotation for that purpose.

However, there is no magic config param. Sorry.

--Manfred



On Fri, Jun 26, 2009 at 03:36, Sam Witty<samkwi...@yahoo.com> wrote:
>
> If you have the following code:
>
> <h:h:outputText>#{someBean.user.firstName}></h:outputText>
> <h:h:outputText>#{someBean.user.lastName}></h:outputText>
> <h:h:outputText>#{someBean.user.age}"></h:outputText>
>
> and if SomeBean.user() is a call to the db then every one of the above
> expressions will cause a trip to the db. Of course to get around this one
> simply has to cache the value of user from the db (the first time) and then
> return the cached value instead of going to the db again.
>
> This is all well and good... however, I find myself writing a lot of this
> type of caching code in various places. It would seem that a much elegant
> solution would be to have the EL expression evaluator cache the result of an
> expression within a life cycle avoiding the need for every JSF developer to
> sprinkle caching code all over the place.
>
> Then again there maybe something out there that does this already (magical
> config param?) I just could not find anything.
>
> Thanks
> -Sam
> --
> View this message in context: 
> http://www.nabble.com/Caching-the-result-of-an-EL-expression-evaluation-with-in-a-life-cycle-tp24213650p24213650.html
> Sent from the My Faces - Dev mailing list archive at Nabble.com.
>
>

Reply via email to