Как заставить Spring показывать разные сообщения на основе пакета проверки -для одного и того же валидатора в классе?

Во-первых, позвольте мне объяснить, что я использую Spring MVC 3.1.1 и проверку Hibernate 4.2.0. Я использую аннотации проверки для различных форм в моем приложении Spring. Поскольку мое приложение должно быть локализовано, я использовал пакет ресурсов для своих сообщений проверки, который выглядит примерно так:

# ValidationMessages.bundle
FieldMatch=Password and confirmation must match.

Соответствующее определение класса для этого сообщения выглядит следующим образом:

@FieldMatch.List({
    @FieldMatch(first = "password", second = "passwordConfirmation")
})
public class RegistrationForm {
    //...
}

У меня есть этот пользовательский пакет ресурсов, настроенный в мой appContext.xml, и мои сообщения отображаются в форме без каких-либо проблем.

Вот моя дилемма, однако. Есть новое требование, согласно которому я должен подтвердить совпадение большего количества полей. Прямо сейчас я просто подтверждаю, что два поля пароля совпадают. Теперь мое требование состоит в том, что я также должен подтвердить адрес электронной почты. Я знаю, что это глупое требование, но я не могу его изменить. Итак, теперь определение класса будет выглядеть следующим образом:

@FieldMatch.List({
    @FieldMatch(first = "password", second = "passwordConfirmation")
    @FieldMatch(first = "email", second = "emailConfirmation")
})
public class RegistrationForm {
    //...
}

Очевидно,мой текущий пакет ресурсов не будет работать, потому что мне нужно два отдельных сообщения (по одному для каждого совпадения ). Я пытался использовать message="{emails.must.match}", а затем определить это сообщение в пакете ресурсов, но на самом деле он никогда не показывает сообщение, а просто показывает фактический текст {email.must.match}.

Итак, после всех объяснений мой вопрос прост. :Как я могу сделать так, чтобы каждый из этих FieldMatchвалидаторов на уровне класса имел другое сообщение, определенное в пакете ресурсов, чтобы его можно было локализовать?

Заранее спасибо за любую помощь!

[EDIT] Для любопытных, это является валидатором FieldMatch, который я использую.

ОБНОВЛЕНИЕ 23.05.2012 Вот определение бина, которое просили другие:


    
        
            ErrorBundle
            ForgotPasswordBundle
            
        
    



    

8
задан Community 23 May 2017 в 11:57
поделиться