Spring Web Flow – displaying your JSR-303 validation messages using FreeMarker

Instead of creating a custom validator in the traditional sense I’m relying on JSR-303 annotations to specify validation constraints, because, it is the future, and I shouldn’t have to do a load of coding to specify common validation requirements like an email address regular expression or a numeric value that is required to be within a defined range.

Using Spring web flow, I found that binding error messages weren’t available when I called “<@spring.showErrors ‘<br/>’/>” in my freemarker view (after I had bound the field I wanted to show errors for of course).

So where are my error messages?

It turns out that Spring Web Flow has a different way of providing the user with feedback messages. The Spring Web Flow reference documentation says: “Spring Web Flow’s MessageContext is an API for recording messages during the course of flow executions”.

The message context (with all your binding error messages in it) can be found here: flowRequestContext.messageContext. I’ve written a couple of macros to make retrieving error messages from this object a little easier:

<#--
 * Shows flow messages (which reside in flowRequestContext.messageContext)
 *
 * @param source Name of the field that caused the error
 * @param severity String representation of org.springframework.binding.message.Severity
 * @param separator the html tag or other character list that should be used to
 *    separate each option. Typically '<br>'.
 * @param classOrStyle either the name of a CSS class element (which is defined in
 *    the template or an external CSS file) or an inline style. If the value passed in here
 *    contains a colon (:) then a 'style=' attribute will be used, else a 'class=' attribute
 *    will be used.
 * @param tag The HTML tag to wrap the error in
-->
<#macro showFlowMessages source severity separator classOrStyle="" tag="">
  <#assign messages = flowRequestContext.messageContext.getMessagesBySource(source)/>
  <#if (messages?size > 0)>
    <#list messages as message>
      <#if message.severity?string == severity>
        <#if classOrStyle == "" && tag == "">
          ${message.getText()}
        <#else>
          <#if classOrStyle == "">
            <${tag}>${message.getText()}</${tag}>
          <#else>
            <#if tag == ""><#local tag = "span" /></#if>
            <#if classOrStyle?index_of(":") == -1><#local attr="class"><#else><#local attr="style"></#if>
            <${tag} ${attr}="${classOrStyle}">${message.getText()}</${tag}>
          </#if>
        </#if>
        <#if message_has_next>${separator}</#if>
      </#if>
    </#list>
  </#if>
</#macro>

<#--
 * Shows flow messages (which reside in flowRequestContext.messageContext) in an ordered or unordered list
 *
 * @param source Name of the field that caused the error
 * @param severity String representation of org.springframework.binding.message.Severity
 * @param classOrStyle either the name of a CSS class element (which is defined in
 *    the template or an external CSS file) or an inline style. If the value passed in here
 *    contains a colon (:) then a 'style=' attribute will be used, else a 'class=' attribute
 *    will be used.
 * @param ordered Whether or not the macro should output the list as an <ol> or <ul>
-->
<#macro showFlowMessagesList source severity classOrStyle="" ordered=false>
  <#local errorsList><@showFlowMessages source, severity, "", "", "li" /></#local>
  <#if errorsList?trim != "">
    <#if classOrStyle == "">
      <#local attr="">
    <#elseif classOrStyle?index_of(":") == -1>
      <#local attr=" class=" + classOrStyle>
    <#else>
      <#local attr=" style=" + classOrStyle>
    </#if>
    <#if ordered><ol${attr}><#else><ul${attr}></#if>
    ${errorsList}
    <#if ordered></ol><#else></ul></#if>
  </#if>
</#macro>

I’ve added these to my spring extensions, which you can download here: springx.ftl

3,465 thoughts on “Spring Web Flow – displaying your JSR-303 validation messages using FreeMarker

  1. Купить Мефедрон Бошки Марихуану Гашиш Экстази а для какой цели не отправляют? курьерам похуй что тоскать а если бы мусора хотели бы принять посыль наоборот отправили.Заказывал у этих ребят 203 и 5-IAI качеством доволен. Заказы они оформляют долго но зато отправляют быстро. Мне отправили в день оплатыСпасибо за отзывы о новых реагентах. Можно также записаться на совместки где цена от 400 р за грамм : Отправка быстрая

  2. Купить Мефедрон Бошки Марихуану Гашиш Экстази Я вообще удивляюсь как продаван работает то? Есть ветка форума личка и ася – везде молчание. В ася онлайн но всеравно молчит уже третий день – это адекватный сервис?и что за веществоВот такая хитрость

  3. Mobil bahis için doğru apk dosyasını bulmak epey zordu valla. Güvenilir bir kaynak bulmak gerçekten çileydi. Sonunda tüm teknik detayları inceleyip sistemi test ettim. En sonunda sağlam bir adrese ulaştım ve size de tüm detayları aktarmak istedim güncel bilgilere buradan bakabilirsiniz: 1xbet android 1xbet android. Valla bak net söyleyeyim — telefonuma kurduğuma çok memnunum. güncellemeleri de düzenli yapılıyor. Birçok apk denedim ama en başarılısı bu çıktı — başka yerde vakit kaybetmeyin yani. Herkese hayırlı olsun…

  4. Ребята кто в Москве Хочу снести стену между кухней и комнатой Уже знакомые налетели на миллион Я уже голову сломал Короче ребята реально толковые — проект перепланировки квартиры для согласования в МЖИ И чертежи нарисовали В общем жмите чтобы не потерять — заказать проект перепланировки квартиры в москве https://proekt-pereplanirovki-kvartiry-hmf.ru Потом себе дороже Перешлите тому кто ремонт затеял

  5. Всем привет Задолбала эта обычная школа А качество знаний при этом никакое Я уже голову сломал Короче ребята реально толковые — онлайн обучение для детей с любого возраста Уроки в удобное время В общем там и программа и отзывы — московская онлайн школа https://shkola-onlajn-krt.ru Не мучайте детей Перешлите другим родителям кто устал от школы

  6. Народ всем привет Нужно сдвинуть санузел Без проекта даже думать нечего Нервов потратил — пипец Короче единственное что реально работает — перепланировка квартиры в Москве с гарантией И чертежи сделают В общем жмите чтобы не потерять — согласование перепланировки под ключ согласование перепланировки под ключ Потом штраф и суды Перешлите тому кто затеял ремонт

  7. Купить Мефедрон Бошки Марихуану Гашиш Экстази на сайте нету не кого в jaber тишина и онлайн его нет онлайн операторКачество и работа магазина на высотеЧастенько брал сдесь мини-опт по совместкам в 2013-2014году

  8. Купить Мефедрон Бошки Марихуану Гашиш Экстази На ацетоне делай он быстро выветривается и не пахнет совсем21 мая заказал -23 получил трек.все ок жду посылУрал и Chemical продукт знают как сделать грязно

  9. Купить Мефедрон Бошки Марихуану Гашиш Экстази Жду адреса. Магазин осознанно кидает.Кстатичто очень радует так это уровень общения продавца.Юмор лишним не бываетведь так:D?Дальнейших успехов вам и продаж

  10. МАГАЗИНУ надо бы по ровнее работатьМожно позвонить в СПСР у них там даётся полная инфа по треку по телефону. Где чё лежит. Если не написано в ленте… Завтра звякну отпишу если не появится. купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП Контакты указаны у меня в подписе и в разделе Наши Контактыне плохой товар

  11. Мамы и папы отзовитесь Учителя со своими закидонами А знаний реальных ноль Короче реально крутая система — школы дистанционного обучения с индивидуальным подходом Ребёнок учится и не перегружается В общем там программа и условия — дистанционное обучение москва https://shkola-onlajn-vem.ru Переходите на нормальное обучение Перешлите другим родителям

  12. Ребята кто в Москве Замучился я уже с этим согласованием Мосжилинспекция без проекта даже не смотрит Нервов просто нет Короче ребята реально толковые — проект перепланировки квартиры в Москве с гарантией И в инспекцию подали В общем там и примеры и цены — проект на перепланировку квартиры заказать https://proekt-pereplanirovki-kvartiry-hmf.ru Потом себе дороже Перешлите тому кто ремонт затеял

  13. Всем привет Учителя бесят своими требованиями А ещё эти поборы в классе Перепробовал кучу вариантов Короче ребята реально толковые — школа онлайн с зачислением и лицензией Ребёнок занимается дома без нервов В общем смотрите сами по ссылке — уроки онлайн https://shkola-onlajn-krt.ru Не мучайте детей Перешлите другим родителям кто устал от школы

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

  15. When some one searches for his essential thing, so he/she desires to be available that in detail,
    so that thing is maintained over here.

  16. это не спиша эндеграунд улица полнаЗакажу посмотрим я сам надеюсь что магазин хороший-проверенный купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП Заказывал Реагенг всё нормально пришло небольшой бонус порадовал мелочь а приятноБеруууу часто через магазин

  17. Mobil bahis için doğru apk dosyasını bulmak epey zordu valla. Güvenilir bir kaynak bulmak gerçekten çileydi. Güncel bilgileri kontrol edip süreci hatasız başlattım. En sonunda sağlam bir adrese ulaştım ve size de tüm detayları aktarmak istedim güncel bilgilere buradan bakabilirsiniz: 1xbet app android 1xbet app android. Valla bak net söyleyeyim — android uygulaması gerçekten hızlı ve akıcı çalışıyor. Hiçbir güvenlik sorunu yaşamadım yükleme esnasında. Birçok apk denedim ama en başarılısı bu çıktı — başka yerde vakit kaybetmeyin yani. Herkese hayırlı olsun…

  18. Прекрати несчастныйЛазею я по форумуточнее по веткам и на ветке Эскимоса вижу запись на Пробы купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП спср только растраивает такие деньги берут и че то нифига не делают. Посыль уже 3 день лежит в г. Ё-XX. Хотя должны были привезти в близлежащий город. Но тут я узнал то что у нас нет в городе филиала ихнего. Вот и не понятно толи сами привезут толи ехать до них надо.Всем доброго дня Хочу рассказать свой отзыв о данном чудо магазине Заказывал совместку на 50г оплатил днём к вечеру все было готово жаль только я с джабером что то не подружился он меня выкинул прям перед получением адреса НО КЛАДЧИК ТАКОЙ красавчик В итоге я поехал с утра только приехал все было на своих местах Спрятано на совесть Думаю ещё пролежало бы дня 3 ИТОГО: ОПЕРАТОР В ДЖАБЕРЕ САМЫЙ КУЛЬТКРНЫЙ ЧЕЛОВЕК НА СВЕТЕ 5 КЛАДЧИК умница 5 близко ко мне и спрятано как надо P.S. Смело заказываем И радуемся как дети

  19. Ядовитый дурман рушат организм а также
    психику. Катализаторы (кокаин,
    мефедрон, амфетамин) сжигают резерв тела, зажигая инфаркты, неизлечимую гипертермию,
    гниение сосудов также паранойю.
    Каннабиноиды (гашиш, спайсы) ведут буква слабоумию,
    отказу почек и еще психозам.
    Опиоиды (опиоид, метадон) парализуют чухалка, поднимают
    гниение тканей и жестокосердную ломку.
    Итог потребления ПАВ — уступка
    органов, слабоумие равным
    образом смерть.

  20. Слушайте кто с ремонтом Хочу объединить кухню с гостиной А тут оказывается бумажек этих Нервов потратил — пипец Короче единственное что реально работает — услуги по согласованию перепланировки без проблем Сроки реальные — не затягивают В общем смотрите сами по ссылке — согласование перепланировок согласование перепланировок Без проекта даже не начинайте Перешлите тому кто затеял ремонт

  21. трипы почитайте кто уже бралА то я запутался совсем везде по разному пишут. купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП Ну теперь к самому главному – качествоСпасибо. Все по плану получилось. Получил в лучшем виде

  22. хм.. интересно сказал.. никогда не задумывался.. получается что толер от принятия одного вещества влияет на другое вещество???Заказали 2c-i и 2c-p. Как придет в магазине появятся позиции. может и еще что привезут из заказанного курительного. купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП это не спиша эндеграунд улица полнаОплатил жду.

  23. Ядовитый дурман ломают эндосимбионт а также психику.
    Стимуляторы (снежок, мефедрон,
    амфетамин) сжигают средства тела, вызывая инфаркты, предсмертную гипертермию, гниение лимфатический сосуд равно паранойю.
    Каннабиноиды (ямба, спайсы) ведут буква полоумию, отказу почек
    и психозам. Опиоиды (опиоид,
    физептон) обездвиживают чухалка, разгоняют тление мануфактур и беспощадную ломку.
    Итог приложения ПАВЛИНЧИК — уступка организаций, фатуизм
    а также смерть.

  24. Слушайте кто ищет нормальную школу Каждое утро как на войну собираться А знаний реальных ноль Короче нашли отличный выход — онлайн школы для детей с 1 по 11 класс Никаких сборов в 8 утра В общем сохраняйте себе — дистанционное образование дистанционное образование Переходите на нормальное обучение Перешлите другим родителям

  25. магазин ровный3Бабки там всякие купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП Полученная продукция не подлежит возврату и обмену.посылка дошла за 1 сутки сегодня не успел забрать завтра посмотрим на качество я уверен что все будет хорошо

  26. Hmm is anyone else having problems with the pictures on this blog loading?
    I’m trying to figure out if its a problem on my end or if it’s the blog.

    Any responses would be greatly appreciated.

  27. Ребята всем привет Планировал объединить кухню с гостиной Штрафы огромные если без согласования Нервов просто не осталось Короче единственные кто берётся за всё — узаконивание перепланировки без нервотрёпки И чертежи сделали В общем там и примеры и расценки — перепланировка москва https://pereplanirovka-kvartir-owy.ru Не начинайте без проекта Перешлите тому кто тоже ремонт затеял

  28. Просим прощениявсе нормальномы сами разобрались.лучше недобздеть чем перебздеть братуха я надеюсь и у тебя все будет ГУД держи в курсе купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП Трек получил всё ровноОткрываю коробок Пусто под спички шорк вот и пакетик на глаз 03

  29. Слушайте кто устал от обычной школы А домашние задания на 5 часов в день Нервный как спичка Короче единственная школа которая работает — школа онлайн с лицензией и зачислением Никаких звонков и перемен В общем жмите чтобы не потерять — lbs это lbs это Переходите на дистант нормальный Перешлите другим родителям

  30. Слушайте кто ищет выход Домашка на весь вечер Ребёнок раздражённый Короче реально удобный формат учёбы — онлайн обучение для школьников с любого возраста Уроки тогда когда удобно В общем сохраняйте себе — лбс это лбс это Переходите на нормальное обучение Перешлите другим родителям

  31. Люди подскажите Замучился я уже с этим согласованием Мосжилинспекция без проекта даже не смотрит Я уже голову сломал Короче единственные кто делает быстро — заказать проект перепланировки квартиры недорого И техзаключение сделали В общем сохраняйте себе — перепланировка квартиры проектные организации https://proekt-pereplanirovki-kvartiry-hmf.ru Потом себе дороже Перешлите тому кто ремонт затеял

  32. благодарствуюсь бро под затупил малеха вижу ты тут все хорошоЯ вообще удивляюсь как продаван работает то? Есть ветка форума личка и ася – везде молчание. В ася онлайн но всеравно молчит уже третий день – это адекватный сервис? купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП всем мир скажите магаз ровный? ато написал на мыло им и ни ответа ни приветавсем привет магаз ровный сделал проплату во сколько сказали даже раньше получил адресс.успехов магазу будем работать

  33. Всем привет Задолбала эта обычная школа Ребёнок учится ради оценок а не знаний Нервов потратил немерено Короче ребята реально толковые — школы дистанционного обучения с индивидуальным подходом Аттестат государственный — не хуже обычного В общем сохраняйте себе — онлайн школы егэ https://shkola-onlajn-krt.ru Переводите на нормальное обучение Перешлите другим родителям кто устал от школы

  34. Удачи Вам и Процветания От Всей Души купить Мефедрон Бошки Гашиш Марихуану Альфа-ПВП У меня была проси того кто продал все перепроверять- люди могут ошибаться

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>