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

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

  2. бро а ты через че им писал ? как заказал мефедрон купить кокаин купить онлайн да работаем только по прайсу

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

  4. Слушайте что расскажу. Жесть случилась полная. Брат пьёт без остановки. Соседи стучат в дверь. В диспансер везти — учёт на всю жизнь. Короче только это и спасло — адекватный вывод из запоя цены нормальные. Поставили систему. В общем сохраняйте на будущее — снятие запоя цена https://vyvod-iz-zapoya-na-domu-voronezh-plk.ru Каждая минута дорога. Скиньте другу в беде.

  5. В общем магазу УВАЖУХА мефедрон купить кокаин купить онлайн прекращайте пользоваться спср мало того что у них сервис очень плохой принимают :police: ещё и отказываюся работать в свое рабочее время

  6. Оплатил заказ 3 дня прошло статус все еще отложен. мефедрон купить кокаин купить онлайн Да и вообще:

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

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

  9. магаз ровный мефедрон купить кокаин купить онлайн Ясно спс отправил заказ на мыло посмотрим.

  10. Шива я тебя люблю У тебя лучший и мой самый любимый мефедрон. мефедрон купить кокаин купить онлайн Конспирацию посылок наладили? А то такой товар а выписать не могу – стрёмно если просто гриперы в конверте… И отпишите по качеству 5 мео дмт

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

  12. You could definitely see your expertise within the article you write.
    The arena hopes for more passionate writers like you who are not afraid to
    say how they believe. At all times go after your heart.

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

  14. Знаю сайт. Всем советую. Пишу в кратце о главном. Связался в аське. Ответили сразу тут же сделал заказ на регу. Осталось подождать… мефедрон купить кокаин купить онлайн явно не 15-ти минутка почитайте отзывы в соответвующей теме. Качество товара на высоте у нас всегда .

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

  16. Будем дальше работать с этим магазином. мефедрон купить кокаин купить онлайн как дела народ ? Всё хорошо ? не у кого проблем нет ?

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

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

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

  20. Привет В Наличии рега мощная 1к30 и скорость мука. мефедрон купить кокаин купить онлайн я в шоке. до последнего думали кидалово. а нет подняли в касание. стафф пушка. кладмену респект

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

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

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

  24. Добрый вечер менеджер отписал что СК будет в выходные Так это? Интересует Новосибирск опт. мефедрон купить кокаин купить онлайн А теперь к делу.. магаз ровный товар ..вставляет епт..особенно в прошлый раз пол часа ждал что из ванной вылезет оно и покарает меня…хорошо быстро отпускает а то вода остыла уже и сига стлела и хабарик упал так что сам не заметил…

  25. второй раз заказываю класнный продукт пришел что 250 что 307 качество отменное доставка буквально 3 суток мефедрон купить кокаин купить онлайн но с другой стороны селлер не должен и не обязан объяснять что это такое и с чем его едят. Здесь продаются КОНКРЕТНЫЕ в-ва а не какие то А1 В2 и иже с ними. Так что можно узнать и самим. И если вас так интересует качествоособенности товара от данного продавца так не поленитесь в случае заказа отписать о полученном стаффеособенностях меньше мороки будет другим. А то заказывают сотни отзывы пишут единицы и то больше зашибись или аааа не прёёёёёт 111. Выдавайте сами побольше информации.

  26. четко без слов мефедрон купить кокаин купить онлайн реальный магаз всем советую

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

  28. Народ всем привет Вечно то данные устаревшие Кадастровые номера и границы Короче нашел отличный инструмент — публичная кадастровая карта новая с 3D-видом Увидел границы и соседей В общем там и карта и данные — федеральная кадастровая карта https://publichnaya-kadastrovaya-karta-abc.ru Не мучайтесь с росреестром Перешлите тому кто ищет участок

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

  30. он мне успел ответить – поверь ничего такого о чём тебе стоило бы беспокоиться – не случилось мефедрон купить кокаин купить онлайн Хорошийпорядочный магазин обращяйтесь

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

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

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>