[ 
https://issues.apache.org/jira/browse/TAP5-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Kemnade updated TAP5-1919:
---------------------------------
    Labels: bulk-close-candidate  (was: )

This issue affects an old version of Tapestry that is not actively developed 
anymore, and is therefore prone to be bulk-closed in the near future.

If the issue still persists with the most recent version of Tapestry (currently 
5.4.0, available from Maven Central), please update it as soon as possible and 
add '5.4.0') to the issue's affected versions.

> Hidden field component that participates with validation (ValidationTracker)
> ----------------------------------------------------------------------------
>
>                 Key: TAP5-1919
>                 URL: https://issues.apache.org/jira/browse/TAP5-1919
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-core
>    Affects Versions: 5.3
>            Reporter: Geoff Callender
>              Labels: bulk-close-candidate
>
> Since Hidden is not tracked by the Validation Tracker, its value is lost when 
> a page redirects to display validation errors. I'd like to see a new 
> component, say Tracked. I guess it would be the same as Hidden and extend 
> AbstractTextField or similar.
> Why? A common use case is to use Hidden for an entity's version field in a 
> Form to provide optimistic locking. By using Tracked instead of Hidden I 
> could do this...
>     <form t:type="Form" t:id="person" >
>         <t:tracked value="person.version"/>
>         :
>     </form>
> ...instead of this...
>     <form t:type="Form" t:id="person" >
>          <t:hidden value="person.version"/>
>         :
>     </form>
>     // This carries version through the redirect that follows a server-side 
> validation failure.
>     @Persist(PersistenceConstants.FLASH)
>     private Integer versionFlash;
>     void onPrepareForRender() throws Exception {
>         person = findPerson(personId);
>         // If the form has errors then we're redisplaying after a redirect.
>         // Form will restore your input values but it's up to us to restore 
> Hidden values.
>         if (form.getHasErrors()) {
>             person.setVersion(versionFlash);
>         }
>     }
>       
>     void onFailure() {
>         versionFlash = person.getVersion();
>     }
> Thoughts?
> Geoff



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to