[ 
https://issues.apache.org/jira/browse/TAPESTRY-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12576681#action_12576681
 ] 

Andreas Andreou commented on TAPESTRY-2244:
-------------------------------------------

So, does this mean that it suffers from the same issue/feature, or not?

I've read that T5 doesn't rewind, so i dont know if getEntities() will ever get 
called
BEFORE the form ends processing, but if it does, then the issue/feature i 
describe will exist.

For reference, here's the T4 situation:
Assuming a form that displays a list of entities and also allows me to add a 
new one
and i do submit a new one, here's what will happen:
- the new entity will be added to the db.
- the rendering of the page will NOT show me the new entity
because getEntities() will (probably - depends on how components are laid out) 
have been cached before 

> Add @Cached annotation for caching method values
> ------------------------------------------------
>
>                 Key: TAPESTRY-2244
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2244
>             Project: Tapestry
>          Issue Type: New Feature
>          Components: tapestry-core
>    Affects Versions: 5.0.10
>            Reporter: Dan Adams
>            Assignee: Dan Adams
>             Fix For: 5.0.11
>
>
> The @Once annotation can be used on methods to cache the value or cache the 
> value based on some other value changing (great for loops). We've been using 
> it in our internal CMS library and it's immensly useful, especially when 
> getting things out of any kind of database or doing queries. Here's a typical 
> usage:
> class:
> @Once
> public List<Entities> getEntities() {
>   // get and return the objects from the database or something
> }
> in the template:
> <t:if test="!entities.empty">
>   do something
> </t:if>
> <t:loop source="entities">
>   loop through and do something
> </t:loop>
> In this example, getEntities gets cached on the if test and then the value is 
> cached so it doesn't get called again on the loop. You can also use it this 
> way:
> @Property
> private Entity loopValue;
> @Once(watch="loopValue")
> public Object getSomeDependentValue() {
>   // do some expensive operation based on loopValue
> }
> which will only execute the method each time loopValue changes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to