Тег hasErrors (bean: bean, field: field,) в groovy taglib поможет вам в этом. Как сказал Серхио, вы можете вызвать его на своем GSP и использовать его для добавления стилей CSS к вашим входам (или контейнерам ввода). Вот пример для представления, которому передана модель "person", в котором есть поле с именем "name", и я хочу применить класс css 'errors':
<td class="${hasErrors(bean: person, field: 'name', 'errors')} text">
Что касается интеллектуальных, удобных для пользователя сообщений о том, «почему» поле недопустимо, вы можете добавить код свойства i18n в свой валидатор домена, соответствующий текст в папке i18n, и я полагаю, что использовать что-то для эффекта renderError, чтобы распечатайте это сообщение (оно должно быть прикреплено к ошибке). Затем вы можете найти ошибку по имени поля и вставить это сообщение в представление. Не уверен на 100%, как это сделать.