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,151 thoughts on “Spring Web Flow – displaying your JSR-303 validation messages using FreeMarker

  1. 1 bhk flat for rent in dubai silicon oasis Property for sale dubai crypto

  2. Братва после покупки не забываем писать отзывы. мефедрон купить кокаин купить Тоже был осадок но в баньке всё растворилосьКачество обслуживания хорошее – с момента оплаты до прибытия товара прошло всего 3 дня и вес ровный.

  3. Ac?kcas? sas?rd?m kalitesine. Surekli adres degisiyor. En sonunda guvenilir bir kaynak buldum. Bu isin puf noktalar? var. Su an en guncel cal?san 1xbet giris adresi tam olarak soyle: 1xbet yeni giriş 1xbet yeni giriş. Herkesin bildigi gibi — 1xbet guncel adres arayanlar buraya baks?n. Site s?k s?k kapan?yor diyenlere inat. Kendi deneyimim buysa da — canl? destekleri bile h?zl?. Baska yerde aramay?n art?k…

  4. dubai luxury short term rentals Off Plan Real Estate Dubai

  5. Коллеги всем привет Встала задача обновить ассортимент брендированной атрибуки для отдела продаж. Интересует надежный поставщик корпоративных подарков с логотипом компании который не подведет со сроками. сувениры с логотипом купить https://suvenirnaya-produkcziya-s-logotipom-11.ru Реально ли найти недорогую сувенирную продукцию с логотипом с печатью от 100 штук. Может есть проверенные фабрики которые работают напрямую без посредников. Киньте ссылки или названия компаний буду очень благодарен.

  6. Народ привет Такая ситуация — на планерке сказали срочно найти подарки для клиентов. Ищу нормальное изготовление корпоративных сувениров с доставкой по Москве. подарки клиентам с логотипом компании https://suvenirnaya-produkcziya-s-logotipom-10.ru Кто уже заказывал корпоративные подарки с логотипом компании поделитесь опытом. Нужно штук 300-500 но если будет норм цена можем и больше взять. А то я уже второй день в интернете сижу и ничего адекватного не нашёл.

  7. Мне отказали в подтверждении джаббера в ЛС. Будьте бдительны мефедрон купить кокаин купить Ам1220 все больше сообщений что относят к нелегалу.у меня до сих пор нет реальной отправкиток просроченная планируемая

  8. Ребята выручайте Кот старый диван в клочья разодрал надо перетягивать. Теперь мучаюсь — какую взять ткань для мебели чтобы и выглядело достойно и кошачьи когти выдержало. обивочная ткань для мебели цена обивочная ткань для мебели цена Говорят флок и микровелюр быстро вытираются а рогожка лучше. Нужен метров 15-20 может кто знает нормального поставщика.

  9. dubai properties queue point Property for sale dubai crypto

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

  11. wasl flats for rent in dubai Studio for Sale in Dubai

  12. Срочно нужен совет для отдела маркетинга. Планируем раздачу для партнёров на новый год. Везде говорят про индивидуальный подход но реально найти нормальную сувенирную продукцию с логотипом. подарочная сувенирная продукция подарочная сувенирная продукция Говорят что корпоративные подарки сувениры сейчас заказывают в основном в Китае но боюсь за качество. Пока просто собираем инфу. Заранее спасибо кто откликнется.

  13. Личка открыта для всех желающих жаббер chemicalmixdukgo.com готов ответить на все вопросы с 10 до 20 часов по мск https://weaving-mill.ru уж не маленькие блин знаете что заказываете наверное форум вам на что ? или ты думаешь что у них какой то особенный 250й ? Что за кипишь на ветке? И когда будет адрес?

  14. propertyfinder dubai sale Studio Apartment for Sale in Dubai

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

  16. Давно искал инфу и наконец-то разобрался с этой проблемой. Всё расписано до мелочей даже новичок поймет что к чему. Рекомендую заглянуть чтобы не совершать глупых ошибок как я в прошлый раз. Вот мелбет скачать на андроид бесплатно https://howtoairbrush.com — обязательно гляньте. Там внутри и примеры и пошаговые инструкции короче полный фарш.

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

  18. щас заказал по 5г RCS-4 и URB754 по скайпу объяснили как оплатить пока всё коректно жду посылки там отпишу.. мефедрон купить кокаин купить есть что почитатзначит ты чо то намутил а вещество я заказывал в этом магазе норм для RCS естественно

  19. villa rent in dubai jumeirah Emaar Properties for Sale

  20. Долго рылся в интернете на разных форумах Прям беда реальная: постоянно звонят с незнакомого телефона а кто — вообще непонятно. Стало дико интересно. И знаете что? Не всё так сложно в этом плане как кажется. Короче если вас сейчас волнует тот же самый вопрос — пробить странный входящий звонок то есть один нормальный рабочий метод. Конкретно про то где найти по телефонному номеру актуальные данные — вот здесь всё максимально норм расписано: найти человека по номеру телефона бесплатно через спутник без согласия найти человека по номеру телефона бесплатно через спутник без согласия. Я сам сначала вообще не верил во всё это. Потому что а тут выложена конкретная и структурированная информация. В общем обязательно сохраните себе на будущее. Тема вроде избитая но толковое решение всё же нашлось.

  21. Вот это я понимаю СЕРВИС:ok: Превзошло все мои ожидания доставили раньше обещанного… Магаз ровный до последнего сомневался что всё на столько гладко… мефедрон купить кокаин купить Если растворяется без подогрева – то не нужно. В ацетоне как правило если продукт чистый так и растворяется и в осадок не выпадает на спирту придется немного подогретьа почему репа минусовая?

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

  23. Arkadaslar uzun suredir ar?yordum. Surekli adres degisiyor. En sonunda dogru adrese ulast?m. Spor bahisleriyle ilgilenenler bilir. Su an en guncel cal?san 1xbet guncel giris adresi tam olarak soyle: 1xbet güncel 1xbet güncel. Herkesin bildigi gibi — 1xbet guncel adres arayanlar buraya baks?n. Site s?k s?k kapan?yor diyenlere inat. Kendi deneyimim buysa da — canl? destekleri bile h?zl?. Baska yerde aramay?n art?k…

  24. Брали ни один раз в последний раз было несколько косяков. Всё разрешилось вчера плюс бонус за предыдущий косяк. мефедрон купить кокаин купить Какие магазины тебе написали про меня в личку? Что это за бред? Я 2 дня назад зарегистрировался и все мои сообщения только в твоём топике. Или другим магазинам на столько важны твои отзывы и репутация что они сидят в твоей теме и пишут кто о ком и как думает?Кстатичто очень радует так это уровень общения продавца.Юмор лишним не бываетведь так:D?

  25. Коллеги всем привет Встала задача обновить ассортимент брендированной атрибуки для отдела продаж. Подскажите где заказать качественную сувенирную продукцию с логотипом. продукция с логотипом на заказ https://suvenirnaya-produkcziya-s-logotipom-11.ru Кто недавно брал подарки с логотипом под новогодние корпоративы поделитесь контактами. Может есть проверенные фабрики которые работают напрямую без посредников. Киньте ссылки или названия компаний буду очень благодарен.

  26. Ага прям именно так. Но все же? https://lagodicomo.ru 13 янв. в 21:12 Деньги пришли. Заказ будет выслан в ближайшие несколько рабочих дней. Суббота и воскресенье — выходные. После отправки трек номер накладной будет в комментарии к заказу на сайте и продублируется на электронную почту.Ещё и сообщения трут.

  27. fully furnished studio for rent in dubai Villa for Sale in Abu Dhabi

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

  29. Народ привет Ох уже голова болит с этим тимбилдингом нужны нормальные презенты для партнеров. Присматриваюсь к подаркам с логотипом но боюсь нарваться на кривую печать. деловые подарки москва https://suvenirnaya-produkcziya-s-logotipom-10.ru Говорят сейчас модно заказывать корпоративные подарки сувениры из экокожи — но кто делает качественно. Нужно штук 300-500 но если будет норм цена можем и больше взять. Заранее респект тем кто откликнется с контактами проверенными.

  30. Привет всем бандиты? как дела у вас? мефедрон купить кокаин купить я тут походу единственный кто остался недоволен.а какие были проблемы по данном поводу?

  31. 3-раз заказал вот недавно трек пришел но небьется ни на сайте ни по телефону подожду чуток https://goldblack.ru у нас сейчас 6-apb нет в России…Трек получил Данный магазин действительно выполняет свои обязанности перед покупателями.Просто при личном разговоре с продавцом можно действительно понять что работы у них действительно много и на это уходит времяпросто стоит проявить терпение.Считаю как получу товарего качество останется таким же наивысшимкак сама работа магазина

  32. dubai apartments for rent dubizzle Emaar Properties for Sale

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

  34. Давно искал инфу и наконец-то нашел нормальный разбор темы. Всё расписано до мелочей даже новичок поймет что к чему. Многие на форумах спорят а ответ лежал на поверхности. Вот мелбет скачать на андроид мелбет скачать на андроид — сохраняйте себе в закладки пригодится. Там внутри и примеры и пошаговые инструкции короче полный фарш.

  35. Случайно наткнулся на один гайд Ситуация дурацкая нужно срочно проверить один подозрительный номер. Решил докопаться до истины и разобраться. И знаете что? Не всё так сложно в этом плане как кажется. Короче если вас сейчас волнует тот же самый вопрос — пробить странный входящий звонок то есть один проверенный временем вариант. Конкретно про то как найти человека по номеру телефона — вот здесь всё максимально норм расписано: отследить человека по номеру бесплатно отследить человека по номеру бесплатно. Друзьям ссылку скинул в телегу им тоже помогло. Потому что а тут выложена конкретная и структурированная информация. В общем не теряйте свое время зря на разводняк. Век живи — век учись как говорится.

  36. long term flat rental dubai 1 bedroom apartment for sale in dubai real estate agents dubai design district

  37. Uzun zamandır takipteyim. Bazı adresler çalışmıyor. En sonunda sağlam bir link buldum. Casino sevenler bilir. Uyarıları dikkate alarak sistemi kurun. Giriş adresi aynen şu şekilde: 1xbet güncel giriş 1xbet güncel giriş. Velhasıl kelam — 1xbet türkiye için tek doğru adres bu. Para çekme işlemleri sorunsuz. Kendi tecrübemi aktarayım — pişman eden bir yer değil. İyi eğlenceler…

  38. Честно говоря долго выбирал куда поступать но после советов хороших знакомых наткнулся на один нормальный человеческий вариант. Короче вот что я понял: современная школа онлайн — это не просто унылые вебинарчики. Там и домашние задания с подробной индивидуальной проверкой так что прогресс виден сразу. В общем кому понимает толк в теме образовательные онлайн школы — посмотрите условия вот здесь все разжевано до мелочей: online school online school. А я пока пойду дальше разбираться с расписанием. Потому что стандартный дистант бывает дико скучным для ребенка а тут организована именно частная школа онлайн. Советую не тянуть и сразу изучить тему.

  39. Планируете выездное мероприятие? кейтеринговая компания профессиональная организация выездного питания для свадеб корпоративов конференций и частных мероприятий. Разработка меню приготовление блюд доставка сервировка и обслуживание гостей. Полный комплекс услуг для событий любого масштаба.

  40. Коллеги всем привет Срочно нужна консультация тех кто уже заказывал мерч для бизнеса. Интересует надежный поставщик корпоративных подарков с логотипом компании который не подведет со сроками. сувенирная продукция под заказ сувенирная продукция под заказ Реально ли найти недорогую сувенирную продукцию с логотипом с печатью от 100 штук. Может есть проверенные фабрики которые работают напрямую без посредников. Киньте ссылки или названия компаний буду очень благодарен.

  41. Если честно сам перерыл кучу форумов в поисках нормальной ткани для мебели. Оказалось что выбрать подходящий вариант реальная проблема. Короче смотрите вот здесь реально толково расписано про плотность ворс и износостойкость для диванов и кресел а главное — показаны варианты которые легко чистить. Вся полезная информация доступна здесь: ткани для мебели купить https://tkan-dlya-mebeli-2.ru Дальше сами гляньте фактические отзывы. Да и не берите первое что попалось — я уже обжёгся когда брал мебельную ткань купить с рук. Эта тема реально вывозит по износу. Для информации: ткань мебельная купить лучше уже с нормальной пропиткой от грязи. Да и рвётся такое полотно гораздо меньше. Здесь реально дельные советы.

  42. property on the palm dubai Land for Sale in Dubai room for rent in sharjah

  43. Ребята выручайте Решил обновить кухонный уголок а старую обивку уже не найти. Посоветуйте нормальную мебельную ткань для частого использования. где можно купить в москве мебельную ткань где можно купить в москве мебельную ткань Говорят флок и микровелюр быстро вытираются а рогожка лучше. Буду благодарен за любые советы особенно от тех кто сам перетягивал.

  44. Uzun zamandır böyle bir yer arıyordum valla. Sürekli adres değişiyor derler ya işte tam da o hesap. Adımları doğru sırayla uyguladıktan sonra bağlantı hatasız açıldı. Güvenilir bir kaynak bulmanın ne kadar zor olduğunu hepimiz biliyoruz işte size o adres: 1xbet türkiye 1xbet türkiye. Valla bak net konuşayım — casino oyunlarında iddialı olanlar bilir zaten. bonusları bile fena değil действительно. Kendi adıma konuşuyorum size — başka yerde kaybolup durmayın yani. Herkese hayırlı olsun…

  45. Bir arkadaş tavsiyesiyle başladım. Ne yalan söyleyeyim ilk başta şüpheyle yaklaştım. Ama sonunda işe yarar bir link keşfettim. Bilenler zaten anlar. Sistem ayarlarını doğru yaptıktan sonra süreç çok basit. Giriş adresi tam olarak şurada: 1xbet güncel giriş 1xbet güncel giriş. Kısaca özet geçeyim — 1xbet güncel adres arayanlar işte karşınızda. İşlemler hızlı mı derseniz evet. Başka yerlerde vakit kaybetmeyin — her şey düşünülmüş. Gözünüz arkada kalmasın…

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>