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

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

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

  2. Здорова народ Брат умирает на глазах Дети боятся заходить в дом В диспансер тащить — страшно Короче спасла только госпитализация — лечение в наркологическом стационаре под контролем Врачи и медсёстры 24/7 В общем телефон и цены тут — наркологические центры москвы цены наркологические центры москвы цены Не ждите чуда Это может спасти жизнь близкого

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

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

  5. Москва всем привет Брат потерял человеческий облик Соседи уже вызвали участкового Скорая не приедет на такой вызов Короче единственные кто взялся за безнадёжный случай — наркологический стационар цена адекватная Выписали через неделю здоровым В общем вся инфа по ссылке — палата в наркологии https://narkologicheskij-staczionar-moskva-jmw.ru Звоните прямо сейчас Это может спасти жизнь

  6. What’s up, thbis weekend is gkod ffor me, sincee tgis tim i aam reading this great educcational piedce of writing hede aat myy residence.

    ofvd9wuaptow80ij2q1y

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

  8. Всем привет из Питера Сосед совсем спился Соседи уже вызвали полицию В диспансер тащить — страшно Короче врачи стационара реально помогли — наркология вывод из запоя в стационаре с психологом Врачи и медсёстры 24/7 В общем не потеряйте контакты — наркология вывод из запоя в стационаре спб https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-nhy.ru Звоните прямо сейчас Это может спасти жизнь близкого

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

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

  11. Здорова народ Мой близкий уже 12 дней в запое Жена рыдает в голос В диспансер тащить — страшно Короче спасла только госпитализация — быстрый вывод из запоя в стационаре за 5 дней Провели полное очищение организма В общем жмите чтобы сохранить — наркология вывод из запоя в стационаре спб наркология вывод из запоя в стационаре спб Не ждите чуда Перешлите тем кто в такой же ситуации

  12. Здорова народ. Близкий человек уже пятые сутки в запое. Дети всего боятся. Платная клиника — грабёж. Итог единственные кто приехал быстро — вывод из запоя с выездом круглосуточно. Врач поставил капельницу. В общем вся инфа по ссылке — вывод из запоя самара на дому https://vyvod-iz-zapoya-na-domu-samara-qzf.ru Не тяните. Вдруг пригодится.

  13. Люди помогите советом Муж просто потерял себя Дети напуганы до смерти В диспансер тащить — страшно и стыдно Короче врачи вытащили с того света — наркологический стационар цена доступная Провели полную детоксикацию В общем не потеряйте контакты — лечение наркомании стационар https://narkologicheskij-staczionar-moskva-lba.ru Звоните прямо сейчас Это может спасти чью-то семью

  14. Люди помогите советом Ситуация критическая Соседи уже звонят в полицию В диспансер тащить — стыд и страх Короче спасла только госпитализация — наркологическая клиника стационар с круглосуточным наблюдением Сделали кодировку на год В общем жмите чтобы сохранить — платный наркологический стационар платный наркологический стационар Не надейтесь на чудо Это может спасти жизнь близкого

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

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

  17. Люди помогите советом Беда пришла в семью Родственники не знают что делать Скорая не приедет на такой вызов Короче врачи вытащили с того света — наркологические услуги в стационаре полный комплекс Провели полную детоксикацию В общем жмите чтобы сохранить — клиника наркологическая стационар москва https://narkologicheskij-staczionar-moskva-vex.ru Звоните прямо сейчас Это может спасти чью-то семью

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

  19. The best AI-powered http://www.clothes-remover-ai.it.com/ clothing removal services of 2026 powered by updated next-generation neural networks. Unique photo-based undressing algorithms ensure impeccable detail HD resolution and a complete absence of distortion.

  20. Доброго дня земляки Тошнит трясёт сил нет Нужно что-то серьёзное Короче единственное что реально спасает — капельница после похмелья с витаминами Через час состояние нормализовалось В общем жмите чтобы сохранить — сделать капельницу от алкоголя https://kapelnicza-ot-pokhmelya-samara-lhb.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>