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

  1. Какие риски ты адекват ? ты скинул непонятно что не имеющее никакого смысла. мефедрон купить С Уважением.

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

  3. Привет Всем суппер класный магаз всем рекомендую приятно работать оператр адыкват Успехов и процветаний Друзья от всей нашей компании кокаин купить онлайн Это ошибка или нет подскажи пожалуйста.

  4. ро я тоже паниковал но все решилось нормально мне в курьерке обьяснили что с этой ебливой олимпиадой у многих запарка и сбои в работе как то так…. кокаин купить онлайн Добрый вечер Когда ожидается рега по Москве опт??

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

  6. Sales funnel automation web2app vs FunnelFox for web-to-app funnels

  7. Только вот странно что в трипе написано что пак был с 1гр ск а твой заказ это покупка а продажу у магазина от 5гр кокаин купить онлайн доставка порадовала быстро качественно . насчет реагента который был указан 1 к 15 шас насайте он же стоит 1 к 10 такова говна еше не пробывал извените если кого обидел 5 мин прет и все даже пролонгатор увеличил действие до 15 мин . за сам магазин нечего плохова сказать не могу брал раньше рега была отбойной и цены радуют … Но последния рега просто выкинуть что ли ее . сегодня попробую конечно 2 к 10 сделать если не поможет просто выкину ..

  8. Привет народ А в росреестре очереди и бумажки Границы посмотреть Короче работает быстро и понятно — официальная публичная кадастровая карта с выписками Нашел всё за 10 минут В общем вся инфа вот здесь — кадастровые карты россии https://publichnaya-kadastrovaya-karta-mno.ru Пользуйтесь нормальной картой Перешлите тому кто ищет участок

  9. все хорошие отзывы все пишут нам лично в асю или скайп как что то не так к нам особо не ломятся все бегут на форум…. если есть какая то проблема вы нам сразу пишите и будем разбираться мы всегда идем на встречу клиентам… кокаин купить онлайн Столько лет на плавуЭто круто:молодцыПример всем остальным.

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

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

  12. Получил RCS-4 развел в спирту 50 растворился только после нагрева… кокаин купить онлайн магаз ровный

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

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

  15. Ищи в соседней ветке мой отзыв по рцс. ИМХО рцс не для торча. кокаин купить онлайн Товар нормальный. В этот понедельник оплатил ещё жду

  16. И что толку за легалом охотиться. кокаин купить онлайн вообще почта 1 класс оказываеться самое быстрое.. 2-3 суток и приходит

  17. Какие обещания? если выходной скорей всего СПРС в базу не завело твой трек жди понедельника… кокаин купить онлайн Работы очень много стараемся как можем многие задают в Аську и Скайп одни и теже вопросы которые не касаются заказакак в википедию ломяться…

  18. Нее… пацаны Вы не поняли я и не волнуюсь ни капельки и на закз этот мне положить мне за державу обидно. Пришел я в магазин а там висит цена на сок томатный сто рублей. Взял пачку отстоял в очереди а продавщица и говорит что стоит он не сто рублей которые у тебя в кармане а сто десять… Да я разъе….у этот магазин вместе с продавщицой и заведующей…. Лучше заплатите админу своего сайта чтобы мессаги на мыло падали четко и конкретно и не наебы…ли людей. кокаин купить онлайн действительно принимают?

  19. Люди подскажите Вечно то данные устаревшие Соседи какие Короче работает быстро и бесплатно — публичная кадастровая карта россии онлайн Скачал выписку сразу В общем там и карта и данные — егрн карта https://publichnaya-kadastrovaya-karta-abc.ru Пользуйтесь нормальной картой Перешлите тому кто ищет участок

  20. пробвал уже… кокаин купить онлайн Ну давайте не мандражировать плохие мысли материализуются я специально это не написал Что тут в карму никто не верит? : Забыли уже? ;

  21. ребята как-то странно работаютно надеюсьчто честно кокаин купить онлайн вообще почта 1 класс оказываеться самое быстрое.. 2-3 суток и приходит

  22. LinguaGlobal — профессиональное бюро переводов, которому доверяют частные клиенты и компании. Если вы ищете бюро переводов – заходие к нам. Выполняем юридические, технические, медицинские и другие виды переводов более чем на 60 языков мира. Гарантируем точность, соблюдение сроков, полную конфиденциальность и индивидуальный подход. При необходимости обеспечим нотариальное заверение документов. Каждый проект выполняет профильный специалист с соответствующим образованием.

  23. Наркотики ломают организм равно психику.

    Стимуляторы (кокаин, мефедрон, амфетамин)
    сжигают ресурсы чиксачка, возбуждая инфаркты, предсмертную гипертермию, тление контейнеров а также паранойю.
    Каннабиноиды (ямба, спайсы)
    водят ко полоумию, отказу почек равно психозам.

    Опиоиды (опиоид, физептон) парализуют чухалка, разгоняют тление материалов и беспощадную ломку.
    Итог употребления ПАВЛИНЧИК — отказ органов, фатуизм
    а также смерть.

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

  25. Народ выручайте. Попал я в переплёт конкретный. Муж просто пропадает. Соседи стучат в дверь. Скорая не едет. Короче нормальные врачи нашлись — анонимный вывод из запоя без последствий. Приехали через час. В общем там контакты и прайс — запой вызов на дом https://vyvod-iz-zapoya-na-domu-samara-yza.ru Каждая минута дорога. Скиньте другу в беде.

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

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

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

  29. отличный магазин ему кокаин купить онлайн Я вообще удивляюсь как продаван работает то? Есть ветка форума личка и ася – везде молчание. В ася онлайн но всеравно молчит уже третий день – это адекватный сервис?

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>