[ 
https://issues.apache.org/jira/browse/WICKET-5654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrea Del Bene updated WICKET-5654:
------------------------------------

    Attachment: jsr303issue.tar.gz

> DefaultViolationTranslator should maybe use getMessage()
> --------------------------------------------------------
>
>                 Key: WICKET-5654
>                 URL: https://issues.apache.org/jira/browse/WICKET-5654
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-bean-validation
>            Reporter: Thibault Kruse
>            Assignee: Igor Vaynberg
>         Attachments: jsr303issue.tar.gz
>
>
> We created our own Bean Validation Annotation like this:
> {code}
> @Constraint(validatedBy = YearMonthDurationValidator.class)
> public @interface DurationConstraints {
>     String DEFAULT_MESSAGE = "{bad.boundaries}";
> ...
> {code}
> And in YearMonthDurationValidator:
> {code}
> @Override
>     public boolean isValid(final Duration<YearMonth> value, final 
> ConstraintValidatorContext context) {
>         context.disableDefaultConstraintViolation();
>         if (...) {
>             
> context.buildConstraintViolationWithTemplate("{duration.from.null}").addPropertyNode("from")
>                    .addConstraintViolation();
>             valid = false;
>         } else {
>             
> context.buildConstraintViolationWithTemplate("{duration.to.null}").addPropertyNode("from")
>                    .addConstraintViolation();
>             valid = false;
>         }
>         ...
> {code}
> Wicket provides a DefaultViolationTranslator which uses 
> violation.getConstraintDescriptor().getAttributes().get("message")
> as key to look up a localized message. However, in our case, this is always 
> "bad.boundaries", and we believe that it would be more useful if the 
> DefaultViolationTranslator used violation.getMessageTemplate() instead, or 
> maybe as the first key (more backwards compatible). That way we could provide 
> specific error messages for the cases duration.to.null and duration.from.null
> This is a complex design choice, so we are suggesting this tentatively, not 
> really sure whether this would be actually better, and what breakage could 
> occur.
> We will go ahead and implement our own IViolationTranslator as suggested.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to