2013-05-27 29 views
1

我與Freemarker的Java項目中工作。 我已經定義了一個自定義指令,因爲@mycustomdirective嵌套指令參數的Freemarker

這個自定義指令是否支持其他指令作爲參數?

即:

< @mycustomdirective參數= 「< @othercustomdirective參數2 =」 ... 「/>」/>

感謝建議。

回答

2

它不支持;你只能叫#function -s和方法的表達式中(無論是參數值或別的東西)。

這實際上具有一個原因:指令意在輸出標記,並假定功能/方法來生成純文本(或數字,布爾值,等等)。因此,當你與${exp}插入表情,這是受到自動轉義(通過#escape ATM ...所以它是「半自動化」),而指令呼叫不是,所以區別是很重要的。參數值表達,所以,他們的意思是無標記的,當然,雖然可以插入非標記到標記(通過逸出),相反的是根本不可能的。

但是,如果你真的想繞過表達式指令輸出,有黑客:

<#assign captured><@myotherdirective /></#assign> 
<@mydirective parameter=captured /> 
+0

謝謝!非常清楚 :) –