Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.3, 5.4
Description
Historically, Tapestry has needed to keep an instance of ValidationTracker in the session between a form submit and a page re-render, to track user input and input errors; this often means that it is necessary to create the HttpSession just to store this transient value. Tapestry 5.2 went through some contusions to avoid creating the persistent ValidationTracker instance until there were actual errors, to avoid creating the session.
A better approach is to treat successful and failed form submits differently, at least by default. For failed form submits, where the default is to re-render the active page, the Form component could instead immediately re-render the page. The ValidationTracker instance would not ever have to be persistent at that point.
In this way, failed form submissions would be treated somewhat like requests with unhandled exceptions: markup is streamed to the client web browser even during a component event request.