Wie erhalte ich den ungültigen Wert in der Fehlermeldung, während ich im Frühjahr den benutzerdefinierten Validator verwende?

Ich habe Probleme beim Anzeigen eines ungültigen Werts in der Fehlermeldung, die ich habemessages.properties Datei wie folgt

ProductId.exists.custom.validator.validation = A product already exists with product id ${validatedValue}.

und das folgende ist meine kundenspezifische validtor Schnittstelle

@Target( { METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = ProductIdValidator.class)
@Documented
public @interface ProductId {
   String message() default "{ProductId.exists.custom.validator.validation}";

    Class<?>[] groups() default {};

    public abstract Class<? extends Payload>[] payload() default {};
}

Hier ist die Implementierung

@Component
public class ProductIdValidator implements ConstraintValidator<ProductId, String>{

    @Autowired
    private ProductService productService;

    @Override
    public void initialize(ProductId constraintAnnotation) {
        // TODO Auto-generated method stub
    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        Product product = productService.getProductById(value);
        if(product!= null) {
            return false;
        }
        return true;
    }

}

Wenn ich meine Anwendung starte, erhalte ich eine Fehlermeldung wieA product already exists with product id ${validatedValue}. aber ich erwarteA product already exists with product id P1234. als Fehlermeldung

Wie erhalte ich den validierten Wert in einer Fehlermeldung?

Weitere Details Ich habe den Hibernate-Validator verwendet: 4.3.1.Final Version und spring-webmvc: 3.2.0.RELEASE Und ich starte die Validierung im Kontext wie folgt

<mvc:annotation-driven validator="validator"/>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource" ref="messageSource" />
</bean>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage