Of course user will have to use BodyHandler so that all of form data is available as JSON(etc) and validation can be done. This is what I am thinking.
1 - During route creation, user define that they are using BodyHandler.
2 - During defining route request handler, user also provide the class (java bean) to which form data will be bind. Java bean should implement a Validator interface (similar to Spring's interface) and define all the validation in implemented "validate" method.
3 - During the request execution, Vertx will validate that the form data is matching all the constraint.
4 - Return 400 or execute the request handler.