Freemarker 之 Hashes

来源:互联网 发布:好听的淘宝女客服名字 编辑:程序博客网 时间:2024/05/17 17:17

Freemarker Hashes  处理

 

昨天用Freemaker 处理了一个模板的问题,需求是这样的:

根据当前登录人员的角色,进而判断他是否有某个页面上的访问某些功能的操作权限,其实这个应该用数据库里的ACL 来实现,但我对这个也不是太专业,也没有充足的时间进行钻研,系统设计中的现在也没有那样做,于是就想到了Freemarker了,我也不知道用它是否正确,但目前考虑是实现其功能。在遇到 Struts2Action中传一个 priorityMap Freemarker

Freemaker Hashes 以及List  的用法简单例子如:

<#assign myMap = {“name”:”jakemanse”,”age”:26,”sex”:”Man”}>  //定义了一个简单的Map

<#assign keys = myMap?keys>    // 定义并赋值keys

<#assign keys = myMap?values>  // 定义并赋值values

 

<#list keys as key>

${key} = ${h[key]};

</#list>

 

<#list values as value>

${value}

</#list>

 

 

 

具体使用:

<#assign key="新增工单">

<@s.if test="${priorityMap[key]}==true">

...

...

</@s.if>

这样正常的情况下,是没有问题的,但是在priorityMap 找不到对应的keyvalue 值时,${priorityMap[key]}就会发生异常,一开始我一直都没有找到其原因,结果一个个小尝试才知道是怎么回事。所我就对此判断进行相应的改良:

 

<#assign column=0>                    

<#assign keys = priorityMap?keys>

<#list keys as key>

    <#if key=”…”>

       <@s.if test="${priorityMap[key]}==true">

    显示HTML 相关的内容

</@s.if>

<#if key=”…”>

 

</#list>

 

 

这样就可以解决,找不到key对应的value值而产生的异常了。问题是解决了,但我不知道这是不是最佳的处理方法。

原创粉丝点击