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

  1. Спасибо магазину Бошки купить Кто у Чемикала в последнее время брал ОПТ от 1 КГ и более Все ОК?????? ОПТ давно кто получал???? Задержки были…..?????

  2. Закупал я рег у Тс конечно качество пацаны просто бомба:good: Я токого не когда не пробывал Кокаин купить большое спасибо продавцу и нашему времени :yeah::drug::rest: – пусть дальше будет еще круче :crazy: быстрее :superman: веселее :dansing: и ДОБрее

  3. Всем привет из Екатеринбурга. Брат пьёт без остановки. Жена в панике. В диспансер тащить — позор на всю жизнь. Короче говоря единственные кто взялся без предоплат — вывод из запоя на дому круглосуточно. Сняли острую интоксикацию. В общем вся информация по ссылке — сколько стоит прокапаться https://vyvod-iz-zapoya-na-domu-ekaterinburg-nws.ru Каждый час усугубляет состояние. Отправьте тем кто в беде.

  4. Знакомые делали получалось что-то похожее на старый Juh. Мефедрон купить Магазин http://WWW.CHEMICAL-MIX.COM ответьте на электроную почту

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

  6. Pozdrav iz moje izkusnje. Upam da bo komu koristilo. Bil sem na robu iskreno povedano. Potem pa sem po dolgem iskanju nasel odvajanje od alkohola pri metodi ki resnicno deluje. Mislil sem da je to se ena prevara. Ampak sem vseeno poskusil. In zdaj po nekaj mesecih lahko recem da je bilo to prelomnica v mojem zivljenju. Sam sem preucil celoten program in vsi kljucni podatki so na voljo na tej povezavi: alkoholizem alkoholizem. Alkoholizem is bolezen ne slabost. Ce se vi ali kdo od vasih bliznjih sooca s tem — vzemite si cas in raziscite. Srecno vsem

  7. Ze dolgo casa nisem vedel kako naprej. Potem pa sem po priporocilu nasel nekaj kar je mi dalo novo upanje. Govorim o zdravljenju alkoholizma pri metodi ki resnicno deluje. Veste alkoholizem je bolezen. In veliko je slabih informacij. Zato vam zelim pokazati vse tehnicne podrobnosti in uradne informacije ki so na voljo na tej povezavi: Dr Vorobjev center https://alkoholizma-zdravljenje.com. Na tej povezavi so odgovori na vsa vprasanja. Po dolgih letih sem koncno nasel resitev. Ni bilo lahko ampak vredno je bilo vsakega truda. Ce nekdo v vasi okolici potrebuje pomoc – ne odlasajte. Srecno na tej poti

  8. 1к10 незачет 2к10 так удовлетворительно. Кокаин купить у меня тоже дроп подлетел с посылкой и брали его ФСБшники почему то но слава богу до уголовного дела не дошло и ТС обещал жирную скидку сделать при следуещем заказе как то так документы о прекращении уголовного дела и экспертиза на руках дело закрыли по двум причинам то что дроп не при делах а второе самое главное что экспертиза не выявила НС

  9. Hello everyone, it’s my first go to see at this
    web site, and piece of writing is genuinely fruitful
    designed for me, keep up posting such posts.

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

  11. отменное :dance: Гашиш купить супер

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

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

  14. вот пару часиков назад получил посылочку=) Чай так сказать=) ща сижу под ним в курочки уплетаю уже 3 разорвиебало бутерброд=)ЫЫЫ Кокаин купить но чет с каждым разом доставка все дороже и дороже

  15. Бро у меня тоже самое даже пробывал уксусом гасить по всем признакам сода. Продаван пообещал решить проблему но авторитет подорван. Скорость ск кристалл купить Магазин в полном порядке

  16. Приветствую народ. Случилась жесть. Жена в панике. В диспансер тащить — позор на всю жизнь. В итоге реально спасли эти врачи — недорогой вывод из запоя в Екатеринбурге. Поставили капельницу сразу. В общем вся информация по ссылке — вывод из запоя цены екатеринбург https://vyvod-iz-zapoya-na-domu-ekaterinburg-nws.ru Звоните сейчас. Может кому-то спасёт жизнь.

  17. Мировые новости https://trawa-moscow.ru в режиме реального времени: политика экономика технологии наука спорт и культура. Следите за главными событиями дня международной аналитикой эксклюзивными материалами и важными изменениями по всему миру.

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

  19. Друзья ситуация. Попал я в переплёт конкретный. Муж просто пропадает. Дети не спят ночами. Платные клиники просят бешеные деньги. Короче только это и спасло — срочный вывод из запоя с капельницей. Отошёл за полчаса. В общем там контакты и прайс — нарколог вывод из запоя https://vyvod-iz-zapoya-na-domu-ekaterinburg-xtz.ru Каждая минута дорога. Перешлите тому кому надо.

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

  21. Dober dan vsem ki berete. Moram povedati nekaj iz prve roke. Vsak dan je bil enak mucenje. Potem pa sem po dolgem iskanju koncno nasel pravo pot. Govorim o ambulantnem zdravljenju alkoholizma pri Dr Vorobjevu. Mislil sem da mi nic ne more pomagati. Ampak sem dal tej metodi priloznost in zivljenje se je obrnilo na bolje. Sam sem preucil celoten program in vsi kljucni podatki so na voljo na tej povezavi: zdravljenje alkoholizma zdravljenje alkoholizma Ni sramota prositi za pomoc. Ce vas prijatelj potrebuje pomoc — to je lahko odlocilni korak. Nikoli ni prepozno za nov zacetek.

  22. Советы по строительству https://lesovikstroy.ru и ремонту для дома квартиры и дачи. Пошаговые инструкции выбор строительных материалов современные технологии полезные рекомендации специалистов и идеи для качественного выполнения любых ремонтных работ.

  23. Доброго времени суток. Ситуация аховая. Дети всего боятся. Скорая не приедет — не тот случай. Короче действительно профессиональная бригада — вывод из запоя цены гуманные. Человек ожил через пару часов. В общем жмите чтобы не забыть — сколько стоит прокапаться от алкоголя https://vyvod-iz-zapoya-na-domu-ekaterinburg-pcl.ru Не ждите чуда. Передайте тем кто в беде.

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

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>