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

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

  1. jumeirah downtown dubai properties Apartments for Sale in Dubai Emaar

  2. Güvenli bahis deneyimi için 1xbet güncel giriş adresini kullanabilirsiniz. artık çok kolay. Giriş yaparken dikkat edilmesi gereken bazı noktalar vardır. Öncelikle resmi web sitesi ziyaret edilmelidir. Güvenli bağlantı sayesinde bilgileriniz korunur. Giriş sayfasına yönlendirme için ana sayfadan ilgili buton seçilmeli. Hatalı bilgi girişinde erişim sağlanamaz. Her zaman resmi site olduğundan emin olunması gerekir. Eğer henüz üye değilseniz basit bir formla kayıt olunabilir. Bilgilerin eksiksiz ve doğru doldurulması önem taşır. Hesap güvenliği için doğrulama zorunlu olabilir. Hesabınız aktif olduktan sonra çeşitli avantajlarınız olur. Çeşitli spor dallarında bahis yapma imkanı sunulur. Kampanyalar hakkında bilgi alabilir ve fırsatları yakalayabilirsiniz.

  3. чистым не очень понравился: мефедрон купить кокаин купить как правило все реактивы от данного магазина проходят проверку на легальностьчистоту так что поживём увидим думаю нелегала тут в продаже не появится Отвечают оперативно оформлено красиво…

  4. Recommended reading: הזמינו שירותי ליווי

  5. real estate agency dubai rent Villa for Sale in Ajman

  6. Ac?kcas? sas?rd?m kalitesine. Girdim c?kt?m derken zaman kaybettim. En sonunda guvenilir bir kaynak buldum. Spor bahisleriyle ilgilenenler bilir. Su an en guncel cal?san 1xbet giris adresi tam olarak soyle: 1xbet güncel giriş 1xbet güncel giriş. Ne demisler — 1xbet spor bahislerinin adresi degisti. Sorunsuz baglant? icin bu link yeterli. Tavsiye eden c?kt? m? emin olun — arayuz zaten al?s?k oldugunuz gibi. Gonul rahatl?g?yla girebilirsiniz…

  7. AM 2233 скоро в продаже мефедрон купить кокаин купить Самое главное что на свободе фиг сним с грузом Задумайтесь ребят может пора сесть на дно чтоб палево отвестиВот и решил проверить данный магаз как только будет инфа обязательно отпишу

  8. Чтобы быстро и эффективно подробнее тут воспользуйтесь специализированными сервисами. В общем тема такая не для паники. Некоторые платные базы данных предоставляют актуальные данные о владельцах номеров. Да и ещё момент — без фанатизма.

  9. buying property process dubai Villa in dubai for 2 million

  10. Магазин не работает по выходными и праздникам https://goldblack.ru заказывал мягкого пятак всё пришло непрходилось волноваться т.к в аське всегда были на связи сила средне но по весу 5 =)Ничего не пойму.. Я уже третий день пытаюсь договориться и всё бесполезно. Прошу номер кошелька куда перевести говорит щас и пропадает на пол дня и так постоянно. Может на мелкий заказ как у меня им пох. Заказываю 10 гр.

  11. top luxury home furnishing furniture sale companies in dubai 1 Bedroom Apartment for Sale in Dubai

  12. Короче наконец-то разобрался с этой проблемой. Всё расписано до мелочей даже новичок поймет что к чему. Сам долго мучился пока не нашел этот гайд. Вот мелбет скачать приложение на андроид мелбет скачать приложение на андроид — обязательно гляньте. Мне лично это сэкономило кучу времени и нервов так что делюсь от души.

  13. Оплатил 3 февраля 6 получил трек-трек не бьётся посылкинет. Раньше заказывал за 2 дня всё приходило на данный момент по почте не отвечают в аське сказали скоро придет в общем ребята попридержите коней. https://b-mix.ru все буде ровно бразы магаз ровный я тоже ждал отправку неделю зато пришло с бонусом я остался доволен щас погода такая все болеют но работают с треками магазин всегда спешит: и качество скоро заценим

  14. flats for rent in wuheida dubai Luxury Apartments for Sale in Dubai

  15. Добрый вечер менеджер отписал что СК будет в выходные Так это? Интересует Новосибирск опт. мефедрон купить кокаин купить Все продукты кроме эйфора в наличии заказывайте Проб нет.поддерживаю парни врубаем тормоза пока нет ясности

  16. Консультация юриста в МФЦ — удобный способ получить правовую помощь по жилищным, семейным, наследственным, земельным и другим вопросам. Переходите по запросу бесплатный юрист МФЦ. Специалист поможет разобраться в ситуации, оценить перспективы дела, подготовить документы и подскажет дальнейшие действия. Запишитесь на консультацию и получите квалифицированную юридическую поддержку в удобном формате.

  17. new damac properties dubai 5 Bedroom Villa for Sale in Dubai

  18. Качество тоже супер. https://7-pr.ru Всем добрый вечер рега появилась та хорошая которая у вас была?Спасибо большое что вы с нами и доверяете нам

  19. Deneyip de begenen cok oldu. Girdim c?kt?m derken zaman kaybettim. En sonunda guvenilir bir kaynak buldum. Bu isin puf noktalar? var. Su an en sorunsuz cal?san 1xbet yeni giris adresi tam olarak soyle: 1xbet güncel giriş 1xbet güncel giriş. Herkesin bildigi gibi — 1xbet guncel adres arayanlar buraya baks?n. Sorunsuz baglant? icin bu link yeterli. Kim ne derse desin — canl? destekleri bile h?zl?. Baska yerde aramay?n art?k…

  20. В общем магазу УВАЖУХА мефедрон купить кокаин купить открывайте все города все только рады будутмагазин отличный работает уже не первый год обращайтесь

  21. Давно присматривался к разным предложениям где реально дают живые знания. Особенно когда речь про частную школу онлайн — тут ведь нужна нормальная подача. У меня племянник как раз начал учиться дистанционно так что намучились мы знатно. В общем посмотрите по ссылке: школа дистанционного обучения школа дистанционного обучения Я если кому интересно ещё пару месяцев назад вообще не верил в онлайн образование школа. Оказалось — реально работает. У них и программа грамотная. В общем рекомендую присмотреться. Надеюсь поможет в выборе.

  22. Признаюсь сначала очень сильно сомневался в этой затее но после кучи долгих обсуждений наткнулся на один действительно толковый вариант. Короче вот что я понял: современная онлайн-школа для детей — это уровень на порядок выше обычного. Там и домашние задания с подробной индивидуальной проверкой что очень радует на практике. В общем кому надоело искать среди кучи мусора в теме образовательные онлайн школы — убедитесь во всём сами вот здесь все расписано в деталях: интернет-школа интернет-школа. А я пока пойду дальше разбираться с расписанием. Потому что обычная школа часто проигрывает по всем фронтам а тут организована именно грамотно выстроенный учебный процесс. Держите этот вариант у себя в закладках.

  23. hotel apartments in dubai cheapest in deira al rigga Emaar Properties for Sale

  24. у нас нет давно курьерских доставок. https://moskovceva.ru Успехов и процветания новому селлеру Желаю денег пресс и в обществе весДобрый день А можно поинтересоваться – в связи с чем сменилась курьерская служба?

  25. Слушайте реально замучилась искать нормальную платформу для дочки. Везде одна вода или заоблачные ценники. Соседка по площадке посоветовала глянуть вот этот проект: образовательные онлайн школы . Пришлось признать что был не прав. Успеваемость подтянулась особенно по точным наукам. Объясняют на пальцах без лишней воды. Плюс огромный – никаких больничных заболел – смотришь записи. Для современных детей самое то ИМХО.

  26. где-то 15 мл брал. мефедрон купить кокаин купить в рязань доставим?1к10 незачет 2к10 так удовлетворительно.

  27. dubai luxury homes real estate 2 BHK for Sale in Dubai

  28. Ребята привет Долго думал стоит ли начинать эту волокиту. Акт скрытых работ потерял да и проект сам переделывал. В общем теперь легализовывать этот бардак придётся официально. И тут встал вопрос: перепланировка цена перепланировка цена Кто сталкивался недавно — сколько стоит узаконить перепланировку в многоэтажке. Или взносы в жилинспекцию за выдачу акта. А то риелторы называют цифры от балды. Без этого а если решите ипотеку рефинансировать БТИ зарубит. Короче просто сколько отдать чтобы спать спокойно с новой планировкой.

  29. Если бы ещё доставка не выпала на выходные – ждать пришлось бы ещё меньше так как курьерская служба по выходным у нас доставку не осуществляет. А сама доставка от пункта А до пункта Б заняла три дня. мефедрон купить кокаин купить Это точно.Удачи Вам и Процветания От Всей Души

  30. Народ приветствую. Дело деликатное но решил черкануть пару строк так как в сети сейчас полно сомнительных клиник. Если срочно требуется квалифицированная медицинская помощь важно чтобы доктора отреагировали оперативно. Мы в свое время тоже столкнулись с этой бедой в итоге вся ценная информация была собрана по крупицам. Кому тоже нужны подробности и условия можете ознакомиться по ссылке: вывод из запоя в стационаре вывод из запоя в стационаре. На этом ресурсе действительно дана полная информация и помощь окажут полностью конфиденциально. Главное — не затягивать в такие моменты поможет вовремя принять правильные меры. Всем удачи и берегите близких

  31. а я яй я ж отвечаю вам каждый раз как есть возможность пишут много людей одновременно. https://atlasinvest.ru может ты просто сам не учел проценты комиссии и тебе не хватило???ровный магаз успеха и процветания

  32. как здесь стелят? https://b-mix.ru ВСЕ ВОПРОСЫ ПО ДОСТАВКЕ ОБСУЖДАЮТСЯ В ЛИЧКЕ С ТС ПРИ ОФОРМЛЕНИИ ЗАКАЗА.Потом все идет как надо не много по тряхивает но не чего не так люто как от КРИССА

  33. Arkadaslar uzun suredir ar?yordum. Surekli adres degisiyor. En sonunda her seyi cozdum. Spor bahisleriyle ilgilenenler bilir. Su an en guncel cal?san 1xbet yeni giris adresi tam olarak soyle: 1xbet türkiye 1xbet türkiye. Yani k?sacas? — 1xbet guncel adres arayanlar buraya baks?n. Denemek isteyen kac?rmas?n. Tavsiye eden c?kt? m? emin olun — canl? destekleri bile h?zl?. Baska yerde aramay?n art?k…

  34. Да хватает придурков только смысл писанины этой что он думает что ему за это что то дадут кроме бана явно ничего не выгорит Тс красавчик брал 3 раза по кг сделки и всегда все чётко Жду пока появиться опт на ск мефедрон купить кокаин купить Точно так же. Ровно 2 недели назад оплатил. Трек абсолютно левый в КСЭ не бьётся. Хотя я заказывал через Пони. Постоянно слышу только завтра будет биться послезавтра придёт. До этого было всё нормально теперь же с магазом работать не советую. Сам чувак ваще порит чушь типа он связался с курьером и курьер ему сказал что будет биться трекинг .Представитель был Магазин на форуме Бивис и Бадхед на сколько я знаю он работает он у нас был представителем.

  35. я тоже несколько раз брал всё прошло чётко качество радуетдоставлено всё в лучшем видеоператор молочага всегда обьяснит всё что к чемувообщем магазин для меня лучший самый надёжныйУСПЕХОВ И ПРОЦВЕТАНИЯ ВАШЕЙ КОМАНДЕ https://goldblack.ru Адрес почты правильный все проверил не 1 раз ответьте хоть тут.ну будем надееться что и на этот раз TS войдет в положение и как нибудь обратит внимание на решение наших вопросов компенсирует нам потраченые нервы и время на безсмысленное ожидание главное ведь для магазина репутацияПС клады в Москве оч надежные прям 10 из 10 очень понравилось когда забирали 50г

  36. top 10 property websites in dubai Palm Jumeirah Homes for Sale

  37. Давно искал нормальный вариант где реально дают живые знания. Особенно когда речь про частную школу онлайн — тут ведь важен подход. У меня дочка как раз искал гибкий график так что намучились мы знатно. В общем можете глянуть сами: онлайн обучение для детей https://shkola-onlajn-55.ru Я если честно ещё раньше вообще думал что это всё несерьёзно. Оказалось — зря сомневался. У них и программа грамотная. Доволен как слон если честно. Надеюсь поможет в выборе.

  38. вообще почта 1 класс оказываеться самое быстрое.. 2-3 суток и приходит https://michael-kors-sell.ru магаз клёвый :bravo:сервис на высотеРебята у chemical-mix все на высшем уровне

  39. wasl new launch 1 Bedroom Apartment for Sale in Dubai

  40. магазина в скайпе не поймать?как можно с вами пообщаться? https://moskovceva.ru Снова магазин порадовал своей оперативностью сдеал заказ получил трек всё бьётсяКакие риски ты адекват ? ты скинул непонятно что не имеющее никакого смысла.

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>