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

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

  1. off plan townhouses for sale in dubai Villa for Sale in Abu Dhabi

  2. Всем доброго времени суток. Первый раз довелось заказывать в этом магазине на свой страх и риск но положительные отзывы старичков о работе и качестве товара в частности 2с который меня и интересовал убедили что причин волноваться нет. https://yuk-art.ru он мне успел ответить – поверь ничего такого о чём тебе стоило бы беспокоиться – не случилосьОтвечают оперативно оформлено красиво…

  3. все быстро замутили мефедрон купить кокаин купить а я яй я ж отвечаю вам каждый раз как есть возможность пишут много людей одновременно.Вы не могли сегодня оплатить заказ потому что мы сегодня не работаем :

  4. 4 star hotel apartments in dubai Flats for Sale in Dubai

  5. Брал первый раз дживик качество вроде нормЕще хотел совет попросить как из 250 самый норм микс сделать?Помогите плиз. https://yuk-art.ru FoX будь добр скажи…какие манерные нынче клиенты пошли плюнешь в рожу драться лезут видете ли ему грубо ответили я с ТС с момента регистрации общаюсь и не разу он не забуровил даже когда были терки а они поверь были так что не пизди про невежливое обращение да и по переписки видно что все ровно ищи проблему в себе….

  6. real estate seminar permit dubai Flats for Sale in Dubai

  7. трек получил в четверг до сих пор не бьётся. Как что изменится отпишу мефедрон купить кокаин купить Получил трек 4 февраля трек не бьется на сайте по сей день…новый магазин???это хорошоуспехов в работе конкуренция – это очень хорошо

  8. Столько лет на плавуЭто круто:молодцыПример всем остальным. https://b-mix.ru chemical-mix.com работает у кого ??? всё походу накрылся магаз :::???получил посыль.мхе отличного качестваа вот ам2233 пока думаю ко скольки мутить.все пишут по разному.

  9. short term lowest monthly room rental dubai 5 Bedroom Villa for Sale in Dubai

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

  11. Если захотят принять то это тебя никак не обезопасит https://michael-kors-sell.ru В аське спросил продавца в чем дело? Была ли действительно отправка. Убеждает что была это просто проблемы в курьерке если в понедельник не забьется будет звонить сам.Спасибо магазину за это

  12. Güvenli bahis deneyimi için 1xbet yeni giriş adresini kullanabilirsiniz. artık çok kolay. Giriş yaparken dikkat edilmesi gereken bazı noktalar vardır. Öncelikle resmi web sitesi ziyaret edilmelidir. Güvenli bağlantı sayesinde bilgileriniz korunur. 1xbet giriş ekranına ulaşmak için sayfanın üst kısmındaki giriş butonuna tıklanmalıdır. Hatalı bilgi girişinde erişim sağlanamaz. Kişisel bilgilerinizi girmeden önce sayfanın orijinalliği onaylanmalıdır. Eğer henüz üye değilseniz basit bir formla kayıt olunabilir. Bilgilerin eksiksiz ve doğru doldurulması önem taşır. Hesap güvenliği için doğrulama zorunlu olabilir. Hesabınız aktif olduktan sonra çeşitli avantajlarınız olur. Spor bahisleri ve canlı oyunlar kolaylıkla oynanabilir. Bonuslar ve özel tekliflerle kazancınızı artırabilirsiniz.

  13. real estate agents in dubai list emails Palm Jumeirah Homes for Sale

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

  15. apartment lease price trend in dubai Villa for Sale in Sharjah

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

  17. Dubai is solitary of the clique’s outstrip valid manor investment destinations, oblation rates advantages, formidable rental yields, and premium lifestyle opportunities.

    From confidence villas to high-rise apartments, buying property in Dubai provides unequalled
    passive for both receipts and long-term money growth.

  18. Чего у вас со скайпом? Оффлайн уже несколько недель. https://garantkomi.ru посылка в городе. Сегодня заберуздравствуйте. магазин работает?

  19. Apartment for Sale in Al Marjan Island Ras Al Khaimah Villa for Sale in Dubai

  20. Ровный магазин . Всем советую https://polilov.ru бери не пожалеешь.Магазин не отвечает может типо выходные ждем понедельника.

  21. Чтобы быстро и эффективно источник воспользуйтесь нормальными ребята реально помогают. Знаете многие лезут в дебри а зря. Через поисковики можно отыскать материалы и записи где упоминается номер. Надеюсь понятно объяснил.

  22. Магазин нормальный качество на уровне короче заказывай и не парься я тут брал уже раза 3 и всегда всё на уровне:good:. А ник его Фокс произносится что в переводе с английского означает лиса лис.. https://lessy-tort.ru Снова в делене бзди все будет ровно трек не всегда бьется это касяк курьерки а не отправителя не паникуй

  23. Народ приветствую. Слушайте вопрос сложный но многим может помочь особенно когда речь идет о близких людях. Когда нужен проверенный и опытный врач для капельницы лучше сразу обращаться к сертифицированным медикам. Знакомые вызывали бригаду в похожей ситуации чтобы помощь оказали без лишних хлопот и в спокойной атмосфере. Кому тоже нужны подробности и условия вся информация есть здесь: услуги нарколога на дому. Врачи дежурят круглосуточно во всех районах и помощь окажут полностью конфиденциально. Надеюсь эта рекомендация и обращайтесь к настоящим профессионалам. Всем удачи и берегите близких

  24. property valuation training dubai Distress Sale of Villas in Dubai

  25. Если интересует эта тема вот прямая ссылка. Многие спрашивали делюсь полезной ссылкой: мелбет скачать на айфон. Этот букмекер реально топовый — линия на футбол и теннис огромная. К тому же выплаты приходят достаточно быстро. И еще при регистрации активируется стартовый фрибет рекомендую воспользоваться. Кто уже ставил там?

  26. понравилось очень мефедрон купить кокаин купить Что касается Самой СПСР то в ней ничего такого страшного нет…Хотел бы поблагодарить магазин за отличное отношение и замечательную работу Давно такого не встречал.

  27. off plan property dubai business bay Palm Jumeirah Homes for Sale

  28. Тут мы https://7-pr.ru как-то перехотелось.. что действительно последний товар не очень?Не согласен с Тобою

  29. one bedroom hall in dubai 1 Bedroom Apartment for Sale in Dubai

  30. Я изначально скептически относился ко всей этой дистанционке. Думал сын просто будет играть в танчики. Но жена настояла нашли один портал с живыми учителями: лбс это . Честно? Зашли просто на пробный урок а в итоге остались на весь год. Преподаватели не просто читают по бумажке а реально вовлекают. Ребенок сам ноутбук включает к началу пары. Так что если кому актуально – очень рекомендую хотя бы тест-драйв пройти.

  31. вывод из запоя врачом наркологом на дому вывод из запоя врачом наркологом на дому

  32. Удачи в бизе мефедрон купить кокаин купить Всем добра бразы Самый ровный магазин Ждём открытия на Северном Кавказевсё ровно бро делает

  33. for sale in dubai marina Apartments for Sale in Abu Dhabi

  34. Обустройство водоснабжения в павильонах подмосковья

  35. Пока писал этот пост на почту пришел трек Ждал всего 1 деньреспект оперативно. https://aliancecapital.ru У меня тоже была задержка.На мониторенге тоже отправку просрочили в итоге дней 20 затратили на пересылку.Просто курьерка такая они помоему там распиздяи ещё те…так что на счёт приема можешь не беспокоиться.там даже если мусора захотят что то найти то будет трудно разобраться что да гдевот допустим недавно заказал и курьерка ваще не то вбилатак что не переживайЧемикалы всё ровно делают сложновато будет найти даже если посыль откроюттоже самое-продавец свяжись со мной для оплаты

  36. apartment rental in deira dubai Emaar Properties for Sale

  37. Дошло довольно быстро https://moskovceva.ru доставка порадовала быстро качественно . насчет реагента который был указан 1 к 15 шас насайте он же стоит 1 к 10 такова говна еше не пробывал извените если кого обидел 5 мин прет и все даже пролонгатор увеличил действие до 15 мин . за сам магазин нечего плохова сказать не могу брал раньше рега была отбойной и цены радуют … Но последния рега просто выкинуть что ли ее . сегодня попробую конечно 2 к 10 сделать если не поможет просто выкину ..Всегда платил через киви перевод идёт максимум сутки.950р это с курьером доставит тебе куда скажешь

  38. Чтобы быстро и эффективно официальный сайт воспользуйтесь платформами которые не врут. В общем тема такая не для паники. Социальные сети часто отображают номер в профилях или сообщениях. Короче не нарывайтесь.

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

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>