是否可以調用一個從Freemarker模板獲取參數的方法?如何從FreeMarker模板調用對象的java方法?
我有一個對象模型,我試圖用Freemarker呈現到網頁中。其中一個對象都有一個方法來獲得它的內容的子列表 - 以用來過濾列表中的參數:
public List getunits(final String type);
我知道在JSP中你不能直接這樣做,但你可以編寫自定義函數,這將允許你實現你想要的結果。你如何在Freemarker中解決這個問題?編寫自定義函數是否一樣?或者有什麼方法可以實際調用這種功能?
有問題時,我的豆正在伸出一個TreeMap。在這種情況下找不到方法。 – tbraun 2013-06-12 13:48:00
@tbraun:在這種情況下,您需要'?api'。 'Map'-s的方法沒有公開(至少有'DefaultObjectWrapper'),因爲在FTL中,與Java不同,這些方法沒有自己的命名空間。所以他們會和map中的鍵混合,比如'myMap.someKey'和'myMap.get'(返回'Map.get'方法)都會返回一些東西,並且都會用'myMap?keys'列出來,這將是一個爛攤子。所以默認情況下,'myMap.something'只查找'something'' Map'鍵,而不是'something'方法。但是你可以像'myMap?api.get(...)'那樣工作。 – ddekany 2015-05-24 07:35:28