Simple FreeMarker random number generator

FreeMarker doesn’t have a random number generator function. I needed a really simple solution that would allow me to pick a random image URL to be displayed on the homepage.

<#--
* Generates a "random" integer between min and max (inclusive)
*
* Note the values this function returns are based on the current
* second the function is called and thus are highly deterministic
* and SHOULD NOT be used for anything other than inconsequential
* purposes, such as picking a random image to display.
-->
<#function rand min max>
  <#local now = .now?long?c />
  <#local randomNum = _rand +
    ("0." + now?substring(now?length-1) + now?substring(now?length-2))?number />
  <#if (randomNum > 1)>
    <#assign _rand = randomNum % 1 />
  <#else>
    <#assign _rand = randomNum />
  </#if>
  <#return (min + ((max - min) * _rand))?round />
</#function>
<#assign _rand = 0.36 />

I’ve added this function to the FreeMarker Spring extensions I’ve been building up. You might use it in your code like so:

<img src="<@spring.url "/images/" + springx.rand(1, 10) + ".jpg" />" />

Note that there are obvious issues with this function. Aside from being based heavily on the second the function is called, you’ll notice that the min and max have less probability of being generated as the other values…what? I said it was simple.

2,210 thoughts on “Simple FreeMarker random number generator”

  1. #if kdmp.to=== Вход в сеть Здравствуйте mpkrak.cc===Если проект хочет стать заметным кракен выстраивает единый сценарий. Многоуровневый маркетплейс формирует впечатление через детали. Внимание удерживает понятное меню а логичная подача упрощает знакомство. В материалах проект называют лучшее решение хотя эта оценка передает взгляд создателей. Чтобы составить впечатление можно заметить отдельные функции. Элементы расположены последовательно поэтому пользователь понимает логику. Материалы для новых посетителей показывают особенности. Термин даркнет обозначает сетевую среду. Вопросы торговли связаны с внутренними разделами. Благодаря этому возникает цельная картина и объясняется интерес сообщества. kracontest.com===Условия участия на площадке Kraken. Выбирайте интересные события и получайте бонусы. без безопасных кракена Проверенные ссылки для входа на маркетплейс КРАКЕН: • Для пользователей из г. Ярославль доступно рабочее зеркало: маркетплейса — krak2.to • Запасная ссылка для остальных регионов: найти — krak2tor.cc Оставляйте комментарии если возникнут проблемы с доступом или входом на КРАКЕН. Проверял лично все актуальные зеркала работают стабильно в 2026 году. #else krup.cc=== Пошаговая инструкция по входу Добрый день tkrn.to===Знакомство с площадкой начинается спокойно: вход заметен среди элементов меню. Название kraken используется в публикациях. Планируя перейти к следующему этапу меню предлагает последовательность. Структуру проекта представляет официальный главный сайт. При знакомстве используйте доступные функции. Заметьте кнопку в основном блоке. Страница входа продолжает логику дизайна. Каталог магазина объединяет разделы. Слово кракен используется в обзорах. В публикациях представлены только понятные сведения. Наиболее актуальные ссылки сопровождаются пояснениями. Резервные зеркала поддерживают навигацию. Посетитель понимает назначение разделов поэтому знакомство проходит спокойно. krak2.to===Подробный разбор рекламной акции над Москвой Kraken. Оцените вирусный эффект нестандартного маркетинга. ищите программе канал Проверенные ссылки для входа на маркетплейс КРАКЕН: • Для пользователей из г. Томск доступно рабочее зеркало: тик — krak2.to • Запасная ссылка для остальных регионов: все — krak2tor.cc Задавайте вопросы если возникнут проблемы с доступом или входом на КРАКЕН. Проверял лично все актуальные зеркала работают стабильно в 2026 году.

  2. Check nearby weed shop in prague 1 options and learn about store locations opening hours and available product categories. Review local listings check current Czech regulations and learn about CBD products and hemp-derived goods. Organize your visit by checking reliable information age restrictions and applicable rules.

  3. Доброго Собранные после лечения упаковки не стоит выбрасывать — профессиональная команда поможет найти им правильное применение. Срок годности должен оставаться в норме а упаковка — сохранять целостность и заводской вид. Профессиональный выкуп препаратов предполагает оценку по фотографии и оплату в день обращения. Приятным бонусом становится возможность освободить место и получить часть вложенных средств обратно. Более подробная информация по ссылке – https://продати-лекарстваа.рф продать Эрлеада скупка лекарств Перьета скупка Эксджива выкуп препаратов с договором скупка лекарств в Твери Сигардис 10 продать лекарства Всего наилучшего и успехов Фонд выкупа препаратов

  4. Explore local cannabis in prague shop information to understand Czech laws and available cannabis-related products. Review store details CBD and hemp product categories age restrictions and local regulations before planning a visit. Check which products are permitted what rules apply to possession and public use and how requirements may differ by product type. Reliable information helps visitors make informed decisions avoid misunderstandings and stay aware of the legal requirements while visiting Prague.

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>