Spring MVC 从freemarker列表中获取最后一条记录

nbewdwxp  于 8个月前  发布在  Spring
关注(0)|答案(4)|浏览(119)
<select name="showYears">
            <#list payrollYears as year> 
                <option value="${year.year}">${year.yeardesc}</option>
            </#list>        
    </select>

我从我的控制器中获取payrollyears列表,我在freemarker中迭代列表,并将值添加到选择框中,我希望列表的最后一个值应该是最后一个选择值,我该怎么做

vxf3dgd4

vxf3dgd41#

你可以这样做

<#list payrollYears as year> 
      <option value="${year.year}" <#if !(year_has_next)>selected</#if> >${year.yeardesc}</option>
</#list>
mrzz3bfm

mrzz3bfm2#

对于FreeMarker 2.3.24,您可以执行类似year?has_next的操作,而不是year_has_next

  • item_has_next(已被item?has_next弃用):布尔值,用于判断当前项是否是序列中的最后一项。

参见FreeMarker Docs

7fhtutme

7fhtutme3#

<#list body.result as school_names_list>
{
  "NAME": <#if school_names_list.NAME??>"${school_names_list.NAME}"<#else>""</#if>,
  "ADDRESS": <#if school_names_list.ADDRESS??>"${school_names_list.ADDRESS}"<#else>""</#if>,
   <#if school_names_list?is_last><#else>,</#if>
</#list>

//Here **school_names_list** is a list and we check the last element though **school_names_list?is_last** (where list name is school_names_list)

//In this example, if it the last element, ***we'll avoid adding "," else we add "," as per JSON rules of a list.***
quhf5bfb

quhf5bfb4#

老问题,但你可以使用is_last
使用你的代码,你可以这样写你的代码;

<select name="showYears">
  <#list payrollYears as year>
    <#if year?is_last>
      <option value="${year.year}" selected>${year.yeardesc}</option>
    <#else>
      <option value="${year.year}">${year.yeardesc}</option>
    </#if>
  </#list>        
</select>

一个更好的方法是直接将selected添加到HTML中,并删除整个if检查,但不完全确定如何将其直接添加到HTML中作为有效语法
所以这可能行不通,但我的想法是这样的;

<select name="showYears">
  <#list payrollYears as year>
    <option value="${year.year}" ${year?is_last?then('selected', '')}>${year.yeardesc}</option>
  </#list>        
</select>

相关问题