freemarker list集合去重,實現hashset


在freemarker中沒有提供去重的方法,雖然有提供定義hash的方法,如:<#assign myHash = { "name": "mouse", "price": 50 }>,但是不能夠動態構建hash。

通常我們會在java代碼中進行處理,比如使用set集合、map對象處理。

但是如果一定要在freemarker文件中實現還是可以做到的,如下代碼所示:

introspectedTable.allColumns為java傳遞過來的ArrayList集合。下面進行去重處理


<#list introspectedTable.allColumns as allColumns>
        <#list introspectedTable.allColumns as allColumns2>
                <#if allColumns.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters ==allColumns2.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters>
                    <#if allColumns_index==allColumns2_index>
                        import ${allColumns.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters};
                    <#else>
                        <#break >
                    </#if>
                </#if>
        </#list>
</#list>

 




執行結果為:

import java.lang.Integer;
import java.lang.String;



最后顯示的就是去重之后的內容,原理:使用值和_index兩個一起來實現的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM