I'm not 100% up on DynaForms but I think you can extend the class and write your own validate method. For some reason, most people using DynaForms refuse to write
java classes.
The DynaValForm's validate method being generated is probably nothing but:
ActionErrors errors = super.validate(mapping, request); //Val Framework
return errors;
which calls the Validate Framework and returns the errors. The snippet I posted would be inserted just before the return errors;
I don't think there is a way to pass an object from one request to the next without first placing it into a wider scope or passing it into another object with wider scope.
Placing it in session for that short while won't hurt you any more than any other solution. The object needs exist in memory during the first request and all subsequent request from failed validations. Whether the object is placed repeatedly across each request, in session temporarily, or even application scope for that temporary period of time... they all have pretty much the same performance.
Now if you'll excuse me, I need to change pants after seeing the possible list size.