我现在有一个ftl页面:
                           <form name ="queryByYearForm">
<span>按年份查询:</span>
<select name="year">
                    <option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
<a href="javascript:void(0);" class="gridBtn commitYear">确定</a>
</form>现在要把这个下拉框做成动态的,显示当前年份以及后10年的年份,可以直接在页面上加什么代码实现吗?
因为没怎么用过这种页面不太了解
如果用JS实现嵌套进来怎么样写方便一点 ?

解决方案 »

  1.   

    <#assign x=2011>
    <#assign y=2020>
    <#list x..y as i>
      <option value="${i}">${i}</option>
    </#list>  
    更详细的自己看文档
      

  2.   

    <html>
        <head>
            <script type="text/javascript">
            function initSelect()
            {
            var year = new Date().getFullYear();
            var sel = document.getElementsByName('year')[0];
            for (var i = year; i < year + 10; i++)
            {
            var op = document.createElement('option');
            op.value = i;
            op.text = i;
            sel.options.add(op);
           
            }
            }
           
             </script>    </head>
        <body onload="initSelect()">
    <form name ="queryByYearForm">
    <span>按年份查询:</span>
    <select name="year">
    </select>
    <a href="javascript:void(0);" class="gridBtn commitYear">确定</a>
    </form>
        </body>
    </html>
      

  3.   

    谢谢你回答我的问题,你说的这个写法我倒是了解一点
    我这么写过 <select name="magazine" class="magazine">
    <#assign periodicalTypeList = periodicalLocalService.getPeriodicalTypeList()!>
    <#list periodicalTypeList as periodicalType>
    <option value="${periodicalType["UUID"]}">${periodicalType["gt:title"]}</option>
    </#list>
    </select>
    我这种是直接调的后台方法
    我主要的问题是想问那个2011和2020可不可以直接在页面上new Date()之类的写成动态的
    比如到了明年,显示就是2012-2021这样子 我尝试了几下都没有成功
      

  4.   


    /**
     * 获得近五年
     * 
     * @return
     */
    public List<String> getYearList() {
    List<String> yearList = new ArrayList();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());
    Integer year = calendar.get(Calendar.YEAR);
    int count = 5;
    for (int i = 0; i < count; i++) {
    yearList.add(String.valueOf(year--));
    }
    return yearList;
    }
    这样一个后台方法.  跟你需求相匹配.页面:<select name="assessView.year"><#list assessView.yearList as yearList><option value="${yearList?if_exists}" <#if '${assessView.year?if_exists}'='${yearList?if_exists}'>selected</#if>>${yearList?if_exists}</option></#list></select> 年