Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Incomplete
-
5.3
-
None
Description
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
Attachments
Issue Links
- is related to
-
TAP5-1812 Hidden component does't store submitted value if validation failed
- Closed