项目使用的是 FreeMarker,因为逻辑比较复杂,所以后台传递的数据结构设计的是这样子的:
List<Map<String, Pair<ObjectLeft, ObjectRight>>> quals
在前端通过 FreeMarker 进行解析时,遇到了一些困难。经过查阅各种资料,总结出这种复杂类型的数据结构的 FreeMarker 解析方法如下:
<#list quals as qual>
<div class="qual-section">
<#list qual?keys as key>
<#if qual[key].getRight()?? && qual[key].getRight().status !=3>
<!--#if-->
<#if qual[key].getLeft()??>
<!--#if-->
<#if hasApproved==1>
<#assign approvedQual=qual[key].getLeft()>
<#include "../widget/qual/approved.ftl">
<!--#if-->
<!--#list-->
</div>
<!--#list-->
以此记录。