Current if the a request parameter is injected with @Param(required = true) and the parameter is null or empty, a validation message is added but the validation is not considered failed.
Therefore Faces.isValidationFailed() will return false.
@Param(required = true)
The Bean validation works though. So adding @NotNull on the attribute will work as expected.
Anyway it might still be desirable to fail the validation in the case with @Param(required = true) and no Bean validation defined.
Fail validation if @Param required attribute is not satisfied
Thank you! This was after all just an oversight.
It's available in today's latest 2.4-SNAPSHOT.