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

  1. leads for real estate dubai Emaar Properties for Sale

  2. лучший магаз берите все все порешали вина не магазина. просто красавец https://atlasinvest.ru Доброго времени суток. 3-й заказ шел ровно неделю с момента оплаты. Спасибо за приятный сувенир :good:. Сам бы себе такой не знаю когда приобрел :. Вобщем за сервис снова 5заказывал через сайт или аську?

  3. Güvenli bahis deneyimi için 1xbet yeni giriş adresini kullanabilirsiniz. 1xbet hesabınıza erişim sağlamak. Giriş yaparken dikkat edilmesi gereken bazı noktalar vardır. Öncelikle resmi web sitesi ziyaret edilmelidir. SSL sertifikası ile güvenliğiniz sağlanır. Giriş sayfasına yönlendirme için ana sayfadan ilgili buton seçilmeli. Doğru kullanıcı adı ve şifre girilmesi çok önemlidir. Her zaman resmi site olduğundan emin olunması gerekir. Yeni kullanıcılar kolayca siteye kayıt olabilirler. Doğru bilgilerin girilmesi kayıt sonrası işlemleri kolaylaştırır. Doğrulama aşamasında telefon veya e-posta onayı gerekebilir. Hesabınız aktif olduktan sonra çeşitli avantajlarınız olur. Çeşitli spor dallarında bahis yapma imkanı sunulur. Ayrıca güncel promosyonlar ve bonuslar takip edilebilir.

  4. papular real estate satwa dubai Apartments for Sale in Dubai Emaar

  5. Последние данные очков репутации: мефедрон купить кокаин купить я тут походу единственный кто остался недоволен.Надеюсь на дальнейшее сотрудничество.

  6. Клад был описан понятно и ясно https://weaving-mill.ru Мне от оплаты и в мои руки в общем занимает 2-3 днянарод подскажите а как дела обстоят в столице Москва закладками?

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

  8. emaar apartments for rent in dubai marina 3 bedroom house in dubai for sale

  9. Заказал получил трэк ждем https://polilov.ru Работали с магазином ранее брали по 100г недавно взяли еще 50г хотим сегодня 100г приобрести на регу нету нареканийХмм…странно всё это но несмотря ни на что заказал норм партию Ам в этом магазе так как давно тут беру.Как придёт напишу норм репорт про Ам

  10. real estate agent license dubai 5 Bedroom Villa for Sale in Dubai

  11. Приятно иметь дело с серьёзными людьми https://polilov.ru Согласен магазин хороший знают свое делоЕё переместили в арбитраж. Тогда ничем помочь не могу.

  12. Чтобы быстро и эффективно источник воспользуйтесь такими штуками которые дают инфу. Слушай тут главное — без глупостей. Если контакт невозможен лучше прекратить попытки и искать альтернативы. Короче не нарывайтесь.

  13. Если интересует эта тема вот свежая инфа. Многие спрашивали в итоге скачал отсюда: мелбет казино скачать. Этот букмекер предлагает отличные условия для игроков все интуитивно понятно даже новичку. Порадовало что трансляции матчей идут без задержек. Для новых пользователей можно неплохо увеличить первый депозит лишним точно не будет. Всем удачи

  14. mhm real estate company location dubai ae Emaar Properties for Sale

  15. Как магазиН? мефедрон купить кокаин купить Номер заказа: 10004015 оплачен мыло выслано с информациейМагазин не работает по выходными и праздникам

  16. Уже отчаялся был найти хоть что-то стоящее. Ситуация дурацкая постоянно звонят с незнакомого телефона а кто — вообще непонятно. Решил докопаться до истины и разобраться. И знаете что? Не всё так сложно в этом плане как кажется. Короче если вас сейчас волнует тот же самый вопрос — пробить странный входящий звонок то есть один нормальный рабочий метод. Конкретно про то где найти по телефонному номеру актуальные данные — вот здесь всё максимально норм расписано: искать по номеру телефона искать по номеру телефона. Проверил лично на себе — тема реально работает. Потому что обычный поиск гуглит только рекламный спам. В общем обязательно сохраните себе на будущее. Тема вроде избитая но толковое решение всё же нашлось.

  17. dubai properties group location Luxury Apartments for Sale in Dubai

  18. Давно хотел найти толковое место где реально учат делу. Особенно когда речь про образовательные онлайн школы — тут ведь нужна нормальная подача. У меня сын как раз искал гибкий график так что намучились мы знатно. В общем вся подробная информация вот тут: 11 класс онлайн https://shkola-onlajn-55.ru Я если честно ещё раньше вообще не верил в онлайн образование школа. Оказалось — всё гораздо лучше. У них и домашка без перегруза. Сам теперь советую знакомым. Удачи

  19. Признаюсь сначала очень сильно сомневался в этой затее но после советов хороших знакомых наткнулся на один нормальный человеческий вариант. Если кратко вот что я понял: современная онлайн-школа для детей — это серьёзный и комплексный подход. Там и домашние задания с подробной индивидуальной проверкой что очень радует на практике. В общем кому понимает толк в теме образовательные онлайн школы — убедитесь во всём сами вот здесь все выложено без лишней воды: школа онлайн школа онлайн. А я пока пойду дальше разбираться с расписанием. Потому что без четкой системы в обучении сейчас вообще никуда а тут организована именно грамотно выстроенный учебный процесс. Держите этот вариант у себя в закладках.

  20. пот теории 2мл растворителя на 1г основыт.е на 150г 300мл. https://b-mix.ru Трек получил в первый день5 баллов за работу магазинаИ что толку за легалом охотиться.

  21. 4 bedroom apartment for rent in business bay dubai Emaar Properties for Sale

  22. На тех кто продаёт в наглую… https://goldblack.ru Тут не кидают другМожет быть не отрицаю. Пока никого винить не буду потому что вполне возможно что я и сам закосячил. Но вроде все правильно делал. При том я не один такой..До этого приходил ам окло недели-полторы назад делал все точно так же но только на черной заварке принцесса Нури 1 к 10 и с водника уносило далекоооо….всех кто пробовал этот водник..

  23. Güvenli bahis deneyimi için 1xbet spor bahislerinin adresi adresini kullanabilirsiniz. son derece hızlı ve pratik. Bu siteye erişim için birkaç adım yeterlidir. İlk olarak doğru adresin kullanılması önemlidir. Site güvenliğine verilen önem yüksektir. Giriş sayfasına yönlendirme için ana sayfadan ilgili buton seçilmeli. Hatalı bilgi girişinde erişim sağlanamaz. Her zaman resmi site olduğundan emin olunması gerekir. Eğer henüz üye değilseniz basit bir formla kayıt olunabilir. Kayıt formunda doğru ve güncel bilgilerin girilmesi tavsiye edilir. Hesap güvenliği için doğrulama zorunlu olabilir. 1xbet girişi yaptıktan sonra pek çok fırsattan yararlanabilirsiniz. Çeşitli spor dallarında bahis yapma imkanı sunulur. Bonuslar ve özel tekliflerle kazancınızı artırabilirsiniz.

  24. Я изначально скептически относился ко всей этой дистанционке. Думал сын просто будет играть в танчики. Но жена настояла нашли один портал с живыми учителями: lbs . Пришлось признать что был не прав. Успеваемость подтянулась особенно по точным наукам. Объясняют на пальцах без лишней воды. Плюс огромный – никаких больничных заболел – смотришь записи. Для современных детей самое то ИМХО.

  25. Магазин надежный репутацию оправдал сделал заказ 24 февраля а 26 груз был уже на руках. Если и бывают задержки скорее всего это курьерские фирмы косячат. Сервис тоже на высоте люди адекватные не смотря даже на выше написанные отзывы не разу не усомнился что деньги улетят на ветер https://weaving-mill.ru Отдельный разговор с одной посылкой когда человек менял свое решение и то соглашался ждать посылку то требовал вернуть деньги.Адрес почты правильный все проверил не 1 раз ответьте хоть тут.ну будем надееться что и на этот раз TS войдет в положение и как нибудь обратит внимание на решение наших вопросов компенсирует нам потраченые нервы и время на безсмысленное ожидание главное ведь для магазина репутация

  26. rent apartment dubai month Apartment for Sale in Abu Dhabi

  27. Менеджер вежливый все быстро понимает на 5/5 https://b-mix.ru жте907? Вроде говорят что пока не доступен – находиться на экспертизе… Откуда инфа?Отличный магазин отличный оператор отличный товар. Адрес нашли быстро и без проблем забрали и ушли. Большое спасибо магазину. Всем советую

  28. dubai future projects 2030 Apartments for Sale in Abu Dhabi

  29. перевозки авто москва перевозка автомобиля стоимость услуги

  30. у разных селеров бывает разный джив имеется виду по качеству так я как то брал джив к10 пер слабо очень в другом к 15 убивал вот и спрашивают всегда качество дживика у продавана если ты незнал https://atlasinvest.ru или я что то не так понял?Всех благ в вашем нелегком Бизнасе

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

  32. Слушайте наконец-то нашел нормальный разбор темы. Там всё разложено по полочкам без лишней воды и тупых SEO-текстов. Многие на форумах спорят а ответ лежал на поверхности. Вот mel bet mel bet — сохраняйте себе в закладки пригодится. Мне лично это сэкономило кучу времени и нервов так что делюсь от души.

  33. Получите бесплатную консультацию юриста-нотариуса по вопросам наследства, недвижимости, оформления сделок, доверенностей, раздела имущества и другим правовым вопросам. Переходите по запросу консультация нотариуса бесплатно по телефону круглосуточно в Москве. Специалист поможет разобраться в вашей ситуации, оценит возможные риски и предложит оптимальное решение. Консультация доступна онлайн и по телефону. Обращайтесь за профессиональной помощью и получайте ответы на важные юридические вопросы без лишних затрат.

  34. Всем Мир Да прибудет с вами Сила мефедрон купить кокаин купить Большое спасибо от Сиборяка из Москвы ваш магаз резко скрасил жизнь во время командировки в Москве.Написал заказ на мыло… никто не ответил. Списался через скайп сказали чтоб переоформил заказ.. Переоформил опять никакого ответа…

  35. организация отбора найма персонала кадровое агентство персонал москва

  36. у нас она валяетсясами не потребляем. мефедрон купить кокаин купить Реактивы отличного качества. Особенно JWH серияБрал неоднократно в этом магазе всегда всё ровно и без проволочек так держать

  37. dubai property villanova Studio Apartment for Sale in Dubai

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

  39. мало того что неприятный опыт общения в гоме так и не денег не товару.. https://7-pr.ru По приходу товара я выложу тут розничную площадку для заказов на которой вы сможете заказать реактивы из наличия на складе не уточняя у нас что есть…а как ам то хоть вооще расшифровывается то по науке???

  40. Давно хотел найти толковое место где реально учат делу. Особенно когда речь про образовательные онлайн школы — тут ведь без фанатизма и воды. У меня племянник как раз искал гибкий график так что пришлось перебрать кучу вариантов. В общем можете глянуть сами: школы онлайн 10 класс https://shkola-onlajn-55.ru Я кстати ещё до этого вообще думал что это всё несерьёзно. Оказалось — всё гораздо лучше. У них и домашка без перегруза. В общем рекомендую присмотреться. Удачи

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

  42. Порадовал тот факт что почти на 0.5 там было больше это отдельное СПАСИБО:hello: и цен ниже на форуме нет:hello:. мефедрон купить кокаин купить Ровный магаз отвечаюПолучил посыльвсе отлично..будем тестить товар

  43. услуги агентства по персоналу подбор кадров услуги

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>