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

  1. Je cherchais une application fiable pour mon téléphone. Tout le monde donnait des adresses différentes je ne savais plus qui croire. Jai vérifié les dernières mises à jour pour lancer le processus sans erreur. Jai finalement trouvé la bonne source et je voulais vous partager tous les détails vous pouvez consulter les informations à jour ici: 1xbet télécharger 1xbet télécharger. Voilà pour être clair — lapplication mobile fonctionne parfaitement bien. Je nai rencontré aucun problème lors du téléchargement. Pour être honnête cest la plus fiable que jai trouvée — croyez-moi vous ne serez pas déçus essayez-la. Je vous souhaite bonne chance et beaucoup de gains…

  2. property finder dubai apartmentsdubizzle dubai rent apartment monthlyfind rental property dubai https://biggbuz.com ctc real estate dubairent in bur dubai

  3. Тусишки рекомендую дозу от 25 мг. купить мефедрон но чет с каждым разом доставка все дороже и дороже

  4. apartments in sheikh zayed road dubaidubai real estate agents numbershort term studio type rentals dubai 1 Bedroom Apartment for Sale in Dubai chase properties dubaiapartments for rent in jbr dubai

  5. Нашёл интересный материал по этому вопросу — как правильно организовать процесс для международных транзакций. Товарищ скинул ссылку на качественный разбор: перевод денег за границу https://mezhdunarodnye-platezhi-fra.ru Суть в следующем — разница в итоговой сумме бывает значительной. Стоит учитывать что любой международный перевод — связан с разными типами комиссий. Дополнительная информация — прежде чем отправлять средства имеет смысл изучить актуальные тарифы. В противном случае можно переплатить из-за невыгодного курса. В итоге — лучше заранее разобраться в вопросе перед любой отправкой средств.

  6. Москва – Все чётко поднятие на раз два все по описанию. Мефедрон белый без запаха видно что очищенный. Вес и качество норм Количество соответствует за бонус в спасибо ; купить мефедрон магаз работает малыми обьемами.1-5гр? да

  7. short time hotel in dubaiproperty frauds in dubaibuy villa in dubai hills estate Real estate business for sale in dubai al magrudy residencekgr real estate dubai

  8. вчера вечером получил трек сегодня груз я охуеваю от скорости доставки походу ТС выкупил курьерку по качеству отпишусь позже купить мефедрон если заказываю утром в пн получаю максимум в четверг утром а то бывает и в среду утром на счет выходных все вопросы к спср потому что они не работают в выходные нормально

  9. furnished apartments for rent in dubai for short term2 bedroom Apartments for sale in Bluewatersuk property consultancy in dubai 2 Bedroom Apartment In Dubai furnished apartments for daily rent in dubaiShoreline Apartments guide

  10. Пойже проведу опрос среди кроликов распишу что и как честный репорт гарантирован купить мефедрон в порядке возрастания.

  11. 1 bhk apartments in dubai for yearly rentproperty finder dubai sports citybeachfront properties in dubai https://theringproject.org property lawyers in dubaisimon baker dubai real estate

  12. hsk 4 workbook Сертификат HSK 6 открывает двери в лучшие университеты и компании, где требуется высокий уровень владения китайским. Это серьезная инвестиция в вашу карьеру.

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

  14. Which will appreciate faster in 2026: off-plan or ready properties?real estate companies in al barsha dubaikensington real estate dubai https://inselinstitut.org Harbour Gatebeyonce property in dubai

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

  16. конспирация достойная товар оказался отличным кроли заценили. будем еще работать купить мефедрон Спасибо все понравилось

  17. 4 bedroom Villas for rent in Damac Hillsdaily apartment rental in dubaiasset homes dubai https://fosyga.org cryptocurrency dubai propertyzenith real estate dubai

  18. Оправдания в небе не ищут купить мефедрон отличный магазин обращаюсь уже не первый месяц

  19. Je cherchais une application mobile pour mes paris sportifs. Télécharger un fichier fiable devenait vraiment compliqué. Jai vérifié les dernières mises à jour pour lancer le processus sans erreur. Jai finalement déniché la bonne source et je voulais vous partager tous les détails vous pouvez consulter les informations à jour ici: télécharger 1xbet original télécharger 1xbet original. Voilà pour être clair — la dernière version est super fluide et intuitive. les mises à jour se font automatiquement. Je vous partage mon expérience personnelle — croyez-moi vous ne serez pas déçus essayez-la sans hésiter. Bonne chance à tous…

  20. dubai properties head officevilla for sale in novovilla dubai 999 999success real estate brokers dubai Villa for Sale in Ajman al zad real estate dubaioffice building dubai

  21. Ça faisait un bail que je voulais tester cette plateforme. Tout le monde donnait des liens différents impossible de sy retrouver. Jai vérifié les dernières mises à jour pour lancer le processus sans erreur. Jai finalement trouvé la bonne source et je voulais vous partager tous les détails vous pouvez consulter les informations à jour ici: 1xbet apk 2026 télécharger gratuitement 1xbet apk 2026 télécharger gratuitement. Bref ce que je voulais vous dire — la dernière version est hyper fluide et agréable à utiliser. Je nai eu aucun problème lors du téléchargement. Je vous fais part de mon retour dexpérience — ne perdez plus un seul instant avec dautres sites. Jespère que vous serez aussi conquis que moi…

  22. I am extremely impressed together with your writing abilities as smartly as with
    the layout for your weblog. Is this a paid subject or did you modify it
    your self? Either way stay up the excellent high quality writing,
    it is uncommon to see a great blog like this one these days..

  23. Вот решил поделиться информацией — как правильно организовать процесс для международных транзакций. Нашёл подробный анализ ситуации: прием платежей из-за границы https://mezhdunarodnye-platezhi-fra.ru Суть в следующем — банковские комиссии сильно различаются. Важно понимать любой трансграничный платёж — требует предварительного сравнения условий. Дополнительная информация — прежде чем отправлять средства рекомендуется сравнить несколько вариантов. В противном случае можно переплатить из-за невыгодного курса. В итоге — необходимо проверять информацию перед любой отправкой средств.

  24. я не согласен предыдущем коментариям беру не первый раз на данный момент магазин самый охриненный всегда качество товара радуетвсегда на связи ониони не когда не морозятсясвоё дело знают чётконахрена им кидать они не будут портить свою репутацию какую уже заработал этот магазиня беру поболее и меня не разу сдесь не кинули .процветания магазину .спасибо за вашу работучто всё чётко и быстро И радуете вкусняшками.а ещё хочу добавить возможно это кидаки или канкуренты и пишут разную х….ю что бы сбить новичков Но мы кто всегда с вами знаем что магазин лучший и другого Нам НЕНАДО.Так держать МЫ ВСЕГДА С ВАМИ купить мефедрон Хотя я знаю почему всех слабо торкает всё дело в неверном приёме препарата Весь форум облазил но этого способа не наблюдал . Пусть не приятно но стоит того . Порох под язык . Доза меньше эффект быстрей и ярче . Хотя это личное дело каждого песня не об этом .

  25. какие манерные нынче клиенты пошли плюнешь в рожу драться лезут видете ли ему грубо ответили я с ТС с момента регистрации общаюсь и не разу он не забуровил даже когда были терки а они поверь были так что не пизди про невежливое обращение да и по переписки видно что все ровно ищи проблему в себе…. купить мефедрон Может еще вернемся.

  26. dubai property in cryptocurrencyhomes for better life real estate dubaifreehold property in dubai for expats https://walesafrica.org green community dubai property salebuy freehold apartment in dubai

  27. Решил проблему только когда наткнулся — как выбрать реально работающий способ для платежей за рубежом. Вот здесь всё по полочкам расписано: международные платежи https://mezhdunarodnye-platezhi-kap.ru Короче если по факту — курс конвертации часто занижают. Потому что любой очередной международный перевод — это постоянный риск переплатить. Вот ещё важный момент — перед финальным подтверждением проверьте все комиссии до копейки. Без этого легко попасть на лишние траты. Моё мнение — стоит разобраться заранее перед любой отправкой.

  28. тоже самое-продавец свяжись со мной для оплаты купить мефедрон вобще-то этот магазин трек присылает а не адрес…

  29. 3 bedroom apartment dubai for sale buying property in dubai which has a loadBlue Square Developmentdubai south apartments

  30. Слушайте кто в теме. Задолбался я выбирать кухню. Короче единственные кто не наебывает — заказать кухню без переплат. Гарантия 5 лет. В общем жмите чтобы не потерять — купить кухню производителя в спб https://zakazat-kuhnyu-bnm.ru Не ведитесь на салоны. Перешлите тому кто ищет.

  31. ждём ждём репорт думаю тоже взять АМ купить мефедрон Однажды тормознули его два обкуренных в ноль пацаненка. Один из накуренных засовывает голову в окошко и говорит:

  32. Ребята кто в Питере живет. В Леруа Мерлен посмотрел — качество ужас. То сроки изготовления по полгода обещают. Короче единственные кто не наваривается в тридорога — купить кухню спб с фурнитурой Blum. Приехал замерщик на следующий день после звонка. В общем сохраняйте себе в закладки на будущее — купить кухню производителя в спб https://zakazat-kuhnyu-rty.ru Проверяйте производителя по этому списку. Перешлите тому кто тоже мучается выбором.

  33. Народ привет. То материалы фуфло — картон а не фасады. Пересмотрел ютуб с отзывами — голова пухнет. Короче нашел наконец нормальный вариант — купить кухню спб с установкой. Фурнитура Blum а не говно. В общем сохраняйте себе в закладки — купить готовую кухню от производителя https://zakazat-kuhnyu-gkl.ru Не ведитесь на салоны-прокладки с наценкой в два раза. Сам полгода мучился теперь делюсь.

  34. Je cherchais une application mobile de qualité pour mes paris. Je narrivais pas à mettre la main sur la version officielle. Jai vérifié les dernières mises à jour pour lancer le processus sans erreur. Jai finalement trouvé la bonne source et je voulais vous partager tous les détails vous pouvez consulter les informations à jour ici: 1xbet.apk http://pupusasriolempa.com. En deux mots laissez-moi vous raconter — après lavoir installée jétais vraiment bluffé. les mises à jour se font toutes seules sans intervention. Pour être franc cest la plus fiable que jaie testée — ne perdez plus un seul instant avec dautres sites. Jespère que vous serez aussi conquis que moi…

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>