#java #freemarker
#java — язык #бесплатный маркер #java #freemarker
Вопрос:
У меня есть поле выбора на моей странице freemarker, в каком году поступают данные из базы данных
<select id = "years" name = "years">
<#list getYears as year>
<option value = "${year.years}">${year.years}</option>
</#list>
</select>
Предположим, значение приближается к 2009,2010,2011,2012,2013
но я хочу, чтобы выбранное значение должно быть 2011 ie. в текущем году, как я могу это сделать?
Ответ №1:
Попробуйте это:
<select id="years" name="years">
<#list years as year>
<option value="${year?c}"<#if (year == .now?string("yyyy"))> selected="selected"</#if>>${year?c}</option>
</#list>
</select>
Я предполагаю, что years
переменная представляет собой набор возможных лет.
Ответ №2:
Попробуйте что-то вроде
<option value="${years.year}" <#if years.year == actualyear>selected</#if>/>
с настройкой actualyear
где-нибудь в вашем исходном коде.
Ответ №3:
Более обновленный (начиная с Freemarker 2.3.23) способ сделать это был бы с помощью then?затем операнд
<select id = "years" name = "years">
<#list getYears as year>
<option value = "${year.years}" ${(year.years == thisyear)?then('selected', '')}>${year.years}</option>
</#list>
</select>
Как указано в другом ответе, вам придется назначить этот год ранее в коде:
<#assign thisyear .now?string.yyyy />