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
Соль меф купить Купить лирику без рецепта Наркошопы телеграм
najbardziej wypЕ‚acalne kasyno online goldbet casino darmowe spiny
Люди помогите советом Брат снова сорвался Соседи стучат в стену В больницу тащить страшно Короче единственный кто реально помог — услуги нарколога на дому профессионально Осмотрел и поставил капельницу В общем жмите чтобы сохранить — анонимный нарколог краснодар https://zapoj.narkolog-na-dom-krasnodar12.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Люди помогите советом Близкий человек уже несколько дней в запое Соседи стучат в стену Таблетки не помогают Короче только это реально спасло — вызов нарколога на дом анонимно с лицензией Через пару часов человек пришёл в себя В общем вся инфа по ссылке — вызвать наркологическую помощь https://lechenie.narkolog-na-dom-krasnodar14.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Слушайте кто знает Ситуация критическая Соседи стучат в стену Нужен врач прямо сейчас Короче врач приехал и поставил систему — анонимный вызов нарколога с гарантией Приехал через 40 минут В общем телефон и цены тут — частный нарколог на дом частный нарколог на дом Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Соль меф купить Наркошоп Марихуана гашиш куплю
kasyno z wplata paysafecard blackjack 21 online free
Слушайте кто знает Муж просто потерял себя Родственники не знают что делать Нужен врач прямо сейчас Короче врач приехал и поставил систему — нарколог на дом срочно Приехал через 40 минут В общем телефон и цены тут — нарколога на дом https://czena.narkolog-na-dom-krasnodar22.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Масло конопли купить Вейп с тгк Закладка соли
Слушайте кто сталкивался Ситуация критическая Жена в истерике Таблетки не помогают Короче врач приехал и поставил систему — вызвать анонимного нарколога с препаратами Через пару часов человек пришёл в себя В общем телефон и цены тут — наркологическая помощь на дому наркологическая помощь на дому Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
kasyno z wplata paysafecard 77777 gry za darmo
Люди подскажите Брат снова сорвался Дети напуганы Нужен врач прямо сейчас Короче врач приехал и поставил систему — вызов нарколога на дом анонимно с лицензией Через пару часов человек пришёл в себя В общем вся инфа по ссылке — врач нарколог анонимно https://czena.narkolog-na-dom-krasnodar22.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Вейп с тгк Купить Кокаин Мефедрон Бошки Марихуану
Казань всем привет Близкий человек уже несколько дней в запое Родственники не знают что делать Таблетки не помогают Короче врач приехал и поставил систему — наркологическая помощь анонимно Осмотрел и поставил капельницу В общем жмите чтобы сохранить — нарколог на дом кодирование https://alkogolizm.narkologicheskaya-pomoshh-v-kazani16.ru Наркологическая помощь — это реальный выход Перешлите тем кто в такой же ситуации
Здорова народ Близкий человек уже несколько дней в запое Родственники не знают что делать Нужен врач прямо сейчас Короче врач приехал и поставил систему — наркологическая служба с опытом Приехал через 40 минут В общем не потеряйте контакты — нарколог на дом кодирование https://zapoj.narkologicheskaya-pomoshh-v-kazani16.ru Звоните прямо сейчас Перешлите тем кто в такой же ситуации
Люди подскажите Отец не выходит из штопора Дети напуганы Таблетки не помогают Короче только это реально спасло — нарколог услуги цены адекватные Приехал через 40 минут В общем вся инфа по ссылке — выезд нарколога на дом https://kapelnicza.narkologicheskaya-pomoshh-v-kazani16.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
п»їkasyno na prawdziwe pieniД…dze kasyno na Ејywo
mostbet kod bilan kirish mostbet42102.help
Здорова народ Отец не выходит из штопора Соседи стучат в стену Нужен врач прямо сейчас Короче врач приехал и поставил систему — наркологическая служба с опытом Приехал через 40 минут В общем телефон и цены тут — наркологическая помощь недорого https://czena.narkologicheskaya-pomoshh-v-kazani016.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
Где купить альфа пвп Заказать наркотики
vavada prijava hrvatska vavada prijava hrvatska
como sacar na mostbet http://mostbet61046.shop/
kasyno minimalny depozyt 10 zЕ‚ nv casino bonus bez depozytu 2026
Greetings from Florida! I’m bored to tears at work so I decided to browse your blog on my iphone during lunch break.
I really like the knowledge you provide here and can’t wait to take a look when I get home.
I’m shocked at how quick your blog loaded on my phone ..
I’m not even using WIFI, just 3G .. Anyways, very good blog!
Где купить кокаин Купить Кокаин Героин ЛСД МДМА Экстази
kasyno z wplata paysafecard jakie kasyno online polecacie
Здорова народ Брат снова сорвался Дети напуганы В больницу тащить страшно Короче врач приехал и поставил систему — наркологическая служба с опытом Дал рекомендации и успокоил семью В общем вся инфа по ссылке — наркологическая помощь срочно наркологическая помощь срочно Не ждите пока станет хуже Перешлите тем кто в такой же ситуации
1win казино Киргизия 1win казино Киргизия
1win oglinda actuala https://1win38406.help/
mostbet fogadási tippek mostbet fogadási tippek
1win email 1win04703.help
Кокаин наркотики купить Купить Кокаин Мефедрон Бошки Марихуану
Hello mates, its great piece of writing concerning cultureand completely defined, keep it
up all the time.
kasyno online automaty casino slot automaty
Масло конопли купить Купить Марихуану Мефедрон Гашиш Кокаин
kasyno online automaty maszyny na pieniadze online
Вейп с тгк Купить Кокаин Героин ЛСД МДМА Экстази
polskie kasyno bez weryfikacji allright casino no deposit bonus
Купить марихуана гашиш бошки Можно купить наркотики
polskie kasyno bez weryfikacji best online gambling sites
Слушайте кто кухню ищет Задолбался я уже искать нормальную кухню То ЛДСП тонкая как картон Короче единственные кто не наваривается — кухни на заказ спб с доставкой Кромка немецкая В общем там цены и каталог — кухни под заказ в спб https://kuhni-spb-kqd.ru Не ведитесь на салоны-прокладки Сам мучался теперь делюсь
Телеграм купить меф Купить наркотики
мелбет кз турнир слотов https://www.melbet84261.help
Питер всем привет Цены космос а качество мыло То ЛДСП тонкая Короче реальные ребята с цехом — кухни глория спб от производителя Цены ниже рынка В общем сохраняйте в закладки — заказать кухню от производителя https://kuhni-spb-zmw.ru Не ведитесь на салоны-прокладки Сам мучался теперь делюсь
najbardziej wypЕ‚acalne kasyno online 1win casino opinie
Слушайте кто кухню ищет Продаваны врут про материалы То кромка отваливается через месяц Короче реальные мужики с цехом — кухни СПб от производителя напрямую Кромка немецкая В общем жмите чтобы не потерять — кухни на заказ в спб от производителя недорого кухни на заказ в спб от производителя недорого Не ведитесь на салоны-прокладки Сам мучался теперь делюсь
Где купить кокаин Купить Бошки Шишки Мефедрон Кокаин
gry na prawdziwe pieniД…dze online gambling sites
mostbet mirror uz https://mostbet42102.help/
Здорова народ Отец не выходит из штопора Жена в истерике Нужен врач прямо сейчас Короче только это реально спасло — помощь нарколога на дому Через пару часов человек пришёл в себя В общем жмите чтобы сохранить — вызов нарколога на дом круглосуточно https://klinika.narkologicheskaya-pomoshh-v-kazani016.ru Не ждите пока станет хуже Перешлите тем кто в такой же ситуации