Submit mode="cancel" only skips client-side validation, not server-side
That mode="cancel" parameter of the Submit component really irritates
me. It only skips client-side validation, not server-side validation.
Would anybody object if I changed that?
Howard actually started making this change as TAP5-1604 many years ago
but reversed himself because skipping server-side validation would be
a backward incompatibility. But I wonder if that's really true except
in rare cases.
I think when most users try the mode="cancel" parameter they are
surprised to find that it doesn't bypass server-side validation, and
their eventual response is to add junk code like this:
My proposed 3-line change to Form.java would not break code like the
above, and would make such checks unneccessary. And all current
Tapestry tests pass cleanly (which admittedly just means that this
scenario is not well covered by tests).