установите текущий год в поле выбора во freemarker

#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 />