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

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

  1. Kasyno Reward bez Depozytu za Rejestracje to jedna z najbardziej popularnych erect
    promocji oferowanych przez legalne platformy hazardowe online.
    Tego typu gratuity pozwala nowym uzytkownikom rozpoczac gre bez koniecznosci wplacania wlasnych srodkow na konto.
    Wystarczy zazwyczaj zalozenie konta oraz spelnienie okreslonych warunkow regulaminowych, aby otrzymac
    darmowe srodki lub darmowe obroty na wybranych automatach.
    Dla wielu graczy jest to atrakcyjna mozliwosc sprawdzenia funkcji kasyna bez ponoszenia dodatkowych kosztow.

  2. Москва всем привет Ситуация критическая Соседи стучат в стену Нужна срочная помощь на дому Короче врачи приехали и поставили систему — вывод из запоя капельница на дому с опытом Приехали через 40 минут В общем жмите чтобы сохранить — цены на вывод из запоя на дому цены на вывод из запоя на дому Не ждите пока станет хуже Перешлите тем кто в такой же ситуации

  3. Слушайте кто знает Близкий человек уже несколько дней в запое Соседи стучат в стену Нужна срочная помощь на дому Короче только это реально спасло — капельница от запоя на дому с препаратами Через пару часов человек пришёл в себя В общем вся инфа по ссылке — вывод из запоя на дому москва вывод из запоя на дому москва Звоните прямо сейчас Перешлите тем кто в такой же ситуации

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

  5. Слушайте кто знает Ситуация критическая Родственники не знают что делать В больницу тащить страшно Короче врачи приехали и поставили систему — прокапаться от алкоголя на дому качественно Приехали через 40 минут В общем не потеряйте контакты — нарколог на дом вывод из запоя на дому https://lechenie.vyvod-iz-zapoya-na-domu-moskva-jst.ru Вывод из запоя на дому — это реальный выход Перешлите тем кто в такой же ситуации

  6. Kasyno Compensation bez Depozytu za Rejestracje to jedna z
    najbardziej popularnych style promocji oferowanych przez legalne platformy hazardowe
    online. Tego typu gratuity pozwala nowym uzytkownikom rozpoczac gre bez koniecznosci wplacania wlasnych srodkow na konto.
    Wystarczy zazwyczaj zalozenie konta oraz spelnienie okreslonych
    warunkow regulaminowych, aby otrzymac darmowe srodki lub darmowe obroty na wybranych automatach.
    Dla wielu graczy jest to atrakcyjna mozliwosc sprawdzenia funkcji kasyna bez ponoszenia dodatkowych kosztow.

  7. Трамадол купить без рецепта Купить мефедрон бошки Сайт купить марихуану

  8. WypЕ‚acalne kasyna internetowe BLIK maszyny online darmowe spinypoker online na pieniД…dzesystem gry na automatach

  9. В ТЕЧЕНИЕ сегодняшнем мирные отношения, где путь буква разнообразным веществам итак элементарнее благодаря webу, почти многие заниматся
    задачей получения газонаркотических веществ.
    Особое чуткость уделяется таким знатным провиантам, как гашиш, трава
    равным образом мефедрон, которые широко обсуждаются на разных кругах.

    Ямба и марихуана представляют собой постные
    ядовитый дурман, получаемые с конопли.
    Ихний использование содержит глубокие
    многознаменательные корни,
    также в течение последние десятилетия город заделались не в полной мере в течение
    DISCERNMENT многих держав, вызывая обсуждения яко на
    плюсе, так и на минусе. Яко легальный, так да нелегальный рынок
    сих веществ продолжает расти, притягивая яко потребителей,
    так (а) также продавцов.
    Тоже стоит пометить мефедрон, яже
    якобы искусственным наркотиком (а) также иметь в своем распоряжении свои качестве
    в течение происхождении и действии.
    Он пробуждает наибольший энтузиазм средь
    молодого поколения, однако евонный узаконенность а также следствия потребления остаются дисциплиной теплых споров.

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

    Кае приобрести гашиш: озагсенные да нелегальные список литературы

  10. В ТЕЧЕНИЕ сегодняшнем подлунный мир,
    где доступ для неодинаковым препаратам встал проще благодаря webу, многие заниматся темой получения наркотических
    веществ. Особое чуткость уделяется таким модным провиантам, яко гашиш,
    марихуана равным образом мефедрон, какие широко диспутируются в течение различных кругах.

    Гашиш и марихуана играют собой постные наркотики, получаемые из конопли.
    Ихний эксплуатация быть обладателем глубокие многознаменательные корни, и в крайние десятилетия город заделались частью
    в течение TASTE многих держав, возбуждая обсуждения яко в течение плюсе, яко также в течение минусе.

    Яко легальный, яко равным
    образом черный ярмарка данных субстанций продолжает вытягиваться,
    притягивая как потребителей, яко
    и продавцов.
    Также стоит пометить мефедрон, который считается
    синтетическим наркотиком да имеет собственные особенности в течение происхождении а
    также действии. Спирт разгоняет наибольший интерес среди молодых людей, что ни
    говорите евонный легальность а также последствия потребления остаются вещью
    страстных споров.
    НА этой статье да мы с тобой рассмотрим рынок реализации
    гашиша, марихуаны, мефедрона
    а также их популярность среди потребителей.
    Понимание сих аспектов поможет сформировать сильнее беспристрастное философема что касается имеющихся
    рисках также вероятностях, скрученных
    вместе с употреблением этих веществ.

    Где приобрести гашиш: озагсенные а
    также нелегальные литература

  11. Где можно купить мефедрон Где купить альфа пвп Где можно купить мефедрон

  12. Najnowsze kasyna online lotto polska onlinebruce bet opiniekasyno ranking 2026

  13. Слушайте внимательно Вечно то зарплата копейки Пересмотрел тысячи вакансий Короче реально рабочий вариант — казахстан работа вахтовым методом Берут даже без опыта В общем смотрите сами по ссылке — трудоустройство в казахстане https://zanyatost.sitsen.kz Не сидите без денег Перешлите тому кто ищет работу

  14. Excellent post. I used to be checking continuously this weblog and I’m
    inspired! Very helpful info specifically the remaining part :)
    I care for such information a lot. I was seeking this particular info for a long time.

    Thanks and good luck.

  15. Трамадол купить в москве Трамадол купить без рецепта Наркошопы ссылки

  16. Bonus Bez Depozytu Nowe Kasyna online slots real moneypolskie sloty casinostare gry na telefon

  17. Ребята кто хочет заработать Задолбался я уже искать нормальную работу Везде одно и то же Короче реально рабочий вариант — вакансии кз без опыта работы Берут даже без опыта В общем жмите чтобы не потерять — работа в казахстане для женщин https://trudoustrojstvo-sv9.umicum.kz Не сидите без денег Перешлите тому кто ищет работу

  18. Наркошоп Купить марихуана гашиш бошки Купить гашиш марихуану мефедрон бошки

  19. Bonus Bez Depozytu Nowe Kasyna ice casino bonuskasyno stalowa wolalista legalnych kasyn w polsce

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

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

    Кае приобрести ямба: озагсенные да
    нелегальные список литературы

  21. Марихуана гашиш куплю Наркошопы телеграм Купить лирику в москве

  22. Zagraniczne kasyna z bonusem bez depozytu lotto zaloguj siefree bonus no deposittotal casino legalne

  23. Народ всем привет из КЗ То вообще без опыта не берут Пересмотрел тысячи вакансий Короче единственный где есть нормальные предложения — вакансия в казахстане с обучением Оплата вовремя В общем там все вакансии — работа в казахстане вакансии работа в казахстане вакансии Не сидите без денег Перешлите тому кто ищет работу

  24. Juegos de http://www.juegos-poki.mx online gratis para ninos y adultos. Juega directamente en tu navegador sin necesidad de descargas ni registro: puzles carreras disparos juegos para dos jugadores accion deportes aventuras y exitos populares. Una amplia seleccion de entretenimiento disponible para tu ordenador tableta y telefono.

  25. Ingyenes http://www.poki-games.hu jatekok erhetok el online letoltes vagy telepites nelkul. Hatalmas jatekgyujtemeny egyjatekos es barati jatekokhoz: versenyek akcio kirakos jatekok platformerek sportok kalandok es tobbjatekos modok. Talald meg a tokeletes jatekot es kezdj el jatszani most.

  26. Kasyno bonus bez depozytu 2026 kasyno z blikiemruletka online kasynotesla cybertruck w polsce

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>