[英]Introspection or manipulation of Freemarker template
我正在使用“動態” Freemarker模板,這意味着可以根據用戶提交的輸入進行更改的模板。 我希望能夠做兩件事:
現在,我通過一些丑陋的正則表達式和字符串操作來完成此操作。 這很丑陋且容易出錯,所以我很想利用Freemarker的Java模板表示形式。
根據JavaDoc,Template.getRootTreeNode似乎是我想要的開始:我可以檢索模板的DOM類解析樹,即TemplateElement的實例。 但是TemplateElement的許多具體實現不是公開的。 JavaDoc甚至沒有記錄TemplateElement。 看來我可以從TemplateElement獲得有用信息的唯一方法是編寫駐留在Freemarker軟件包中的代碼。 是否有Freemarker祝福的方式來檢查模板?
理想情況下,我們將擁有有關TemplateElement層次結構的適當文檔,並將其子類公開。 雖然那不能讓我直接修改模板,但至少可以讓我檢查模板的元素。
幾年前還提出了以下問題,但結果有限:
更新 :
我已經啟動了一個Github開源項目,以對已解析的Freemarker模板進行自省,以允許我上面討論的那種程序分析和操縱。 歡迎反饋:
FreeMarker當前沒有發布的用於檢查模板的API,更不用說對其進行修改了。 它會很有用,但沒有它。 因此,我想知道您是否可以從另一個角度解決問題。 您說您是在動態生成模板,除非模板本身是用戶提交的,否則您可以存儲用戶提交的信息(而不是模板本身...)或模板之類的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.