Как отобразить удобные сообщения об ошибках для свойства, имеющего ограничения в граалях - PullRequest
1 голос
/ 18 мая 2011

У меня есть свойство в доменном классе, которое имеет некоторые ограничения

([([A-Z0-9]{2,4}-)+[0-9]{1,2}]) 

pattern.когда пользователь вводит неправильный шаблон, он отображает

Свойство [XXXXX] класса [XXXXX] со значением [A1] не соответствует требуемому шаблону [([A-Z0-9] {2,4}-) + [0-9] {1,2}].

Вместо этого мне нужно отобразить удобное сообщение, как это сделать в Grails, потому что я новичок в этом Grails.

Спасибо

Ответы [ 3 ]

4 голосов
/ 13 апреля 2012

Для настройки поля класса домена вы можете использовать что-то вроде

className.fieldName.matches.invalid=your error message

объяснено в документации Grails

3 голосов
/ 18 мая 2011

Если вы откроете файл i18n/messages.properties, вы увидите свойство, похожее на

default.doesnt.match.message = Свойство [{0}] класса [{1}] со значением [{3}] не соответствует требуемому шаблону [{4}]

Это свойство определяет сообщение об ошибке по умолчанию, которое отображается при нарушении ограничения регулярного выражения. Если вы хотите изменить только сообщение об ошибке, которое используется при нарушении ограничения регулярного выражения этого конкретного свойства, вы можете сделать это, добавив сообщение с более конкретным кодом.

Обновление

На основании вашего дополнительного вопроса:

Есть ли шанс сделать это на стороне класса домена или на стороне контроллера

Возможно, вы захотите установить сообщение об ошибке программно. Это можно сделать с помощью свойства errors, которое добавляется в класс домена после его проверки. Это реализация интерфейса Errors , который предоставляет различные методы rejectValue, позволяющие регистрировать полевые ошибки и связанные с ними сообщения программно

0 голосов
/ 18 мая 2011

Сообщения по умолчанию находятся в файлах i18n messages.properties

У вас будут все сообщения по умолчанию.Посмотрите на i18n часть документа Grails, чтобы увидеть, как вы можете указать сообщение

Я думаю, это что-то вроде className.fieldName.constraintName=message, которое вы должны поместить в файл messages.properties в каталоге i18n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...