Geoff Callender created TAP5-1919:
-------------------------------------
Summary: Hidden is not tracked by Validation Tracker
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
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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira