[英]How do I call java methods on an object from a FreeMarker template?
是否可以調用從Freemarker模板獲取參數的方法?
我有一個對象模型,我試圖用Freemarker渲染到一個網頁。 其中一個對象有一個獲取其內容子列表的方法 - 獲取用於過濾列表的參數:
public List getunits(final String type);
我知道在JSP中你不能直接這樣做,但是你可以編寫自定義函數來實現你想要的結果。 你如何在Freemarker中解決這個問題? 編寫自定義函數是一樣的嗎? 或者有沒有辦法實際調用這種功能?
FreeMarker允許從表達式中調用通過模型提供的方法。
假設您的對象已作為myBean
公開,您可以按如下方式調用該方法:
<#list myBean.getunits("myType") as unit>
do stuff with ${unit}
</#list>
您不必使用<list>
,當然,它只是作為示例,因為您的方法返回一個列表。
正如ChssPly76所說,只要在模型中公開對象,就可以從Freemarker模板中執行方法調用。
但重要的是要記住,如果你的方法返回NULL(無論出於何種原因),你將會感到困惑
Expression myBean.getunits() is undefined on line ....
要避免這種情況,最好使用myBean.getunits(...)!
(注意感嘆號)。
在此處了解有關Freemarker如何處理空值的更多信息: http : //freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_missing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.