项目遇见了Freemarker这个神奇的东西。

解决一个需求:即左侧导航需要动态展示,后台可配置,于是用到了<#list>去遍历显示,后端同学打算将导航存储到Session里,前台直接从Session里读取。

但一一真正落地的时候却发现,从Session里接回来的竟然是个字符串。

温馨提示:后端是可以往Seesion里存储List的。

没办法,只能研究了一下如何遍历字符串的Session数据。

<!-- Session["navList"]里的数据格式 -->
[{"name":"用户管理","url":"user.jhtml"},{"name":"系统管理","url":"system.jhtml"}]
<!-- 检测Session是否有数据 -->
<#if Session["navList"]?exists>
    <!-- 声明变量,获取Session数据 -->
    <#assign leftNavList = Session["navList"] />
    <!-- 声明变量,转换JSON格式 -->
    <#assign leftNavListJson=leftNavList?eval />
    <!-- 愉快的进行遍历 -->
    <#list leftNavListJson as item>
    <a href="item.url">item.name</a>
    </#list>
</#if>