[英]Using Freemarker to generate Java .properties files
我目前正在使用Freemarker生成許多配置文件。 到目前為止,這些文件要么是xml文件,要么是專有格式的文本文件。 我現在想生成一些Java .properties文件,但是遇到了兩個問題。
首先是字符編碼。 據我所見,只需添加
<#ftl encoding="8859_1">
到文件開頭應對此進行整理。
第二個問題是鍵和值的轉義。 密鑰可能還可以,因為無論如何我都會在模板中對它們進行硬編碼,以便可以在模板中對其進行轉義。 這些值將來自我的數據模型,因此需要轉義。
我可以看到如何創建自己的用戶定義指令,並通過將其安裝為共享變量來在模板中使用它。
這是最好的還是唯一的方法? 我以為生成.properties文件是以前已經解決過很多次的事情,並且希望在開始編寫自己的代碼之前可能已經存在了一些東西。
類java.util.Properties獲得了各種存儲方法,可將屬性保存到OutputStreams或文件中。 這似乎比嘗試適應freemarker更可取。
我不了解特定於生成properties
文件的字符集問題。 但是請注意,模板的字符集和輸出的字符集是獨立的,因此您最好對這些模板使用與其他模板相同的字符集(例如UTF-8)。
從轉義開始,請盡可能使用自動轉義。 在2.3.24中,這會特別流暢,但是除非允許您使用未發布的版本,否則您必須等到2月底左右。 (如果可以使用未發布/非官方的版本,則可以在開發人員列表檔案中找到有關內部測試版本的信息。)在2.3.24之前, <#escape x as propEsc(x)>all the template content here</#escape>
,其中propEsc
是您已作為共享變量等添加的TemplateMethodModelEx
(不是TemplateDirectiveModel
)。 因此,所有${...}
-s都將被神奇地轉義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.