freemarker 循环了两个list

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freemarker 循环了两个list相关的知识,希望对你有一定的参考价值。

我现在两个LIST,bmList存放所有的部门,tkbhList存放已经选择的部门。
现在我进行修改,修改时必须列出所有的部门,然后默认选择已经选择的部门。
<#list bmList as dpt>
<#if tb.tkbhList??>
<#list tb.tkbhList as tkbh>
<input type="checkbox" name="dpts" value="$dpt.id! ">$dpt.name!
<#if dpt_index%4 = 3><br /></#if>
</#list>
</#if>
</#list>
这样写的时候出问题了,tkbhList的长度有多少,bmList这个就会循环多少遍。
请问,我现在只想遍历一遍bmList,然后将tkbhList中与bmList的ID相同的值默认选择,其他不选择。该如何写,跪求各位大神赐教。

首先,你插入checkbox的代码放错位置了,应该放在外层循环,放在内层循环的话会重复插入tkbhList长度的checkbox;其次,内层循环只需判断ID相同的项就设置默认选中,内层循环只需做判断就可以了,以下是我修改后的代码,你可以试试。
<#list bmList as dpt>
<#if tb.tkbhList??>
<input type="checkbox" name="dpts" value="$dpt.id! "
<#list tb.tkbhList as tkbh>
<#if dpt_index%4 = 3>checked="checked"</#if>
</#list>
>$dpt.name! <br />
</#if>
</#list>
参考技术A 你能把tkbhList已经选择的部门放到map中。key是id,值也是id,遍历的时候从map中取值,如果取道的值不为空就选中它。 参考技术B 你想要问啥?追问

问题我已经补充了,请再看看

以上是关于freemarker 循环了两个list的主要内容,如果未能解决你的问题,请参考以下文章

Freemarker 可以嵌套循环么

freemarker如何循环选择题的题号

将对象列表传递给 Freemarker 然后循环

将对象列表传递给Freemarker然后循环

如何用freemarker循环一个数字

freemarker中循环list中的map问题