簡體   English   中英

使用Freemarker生成Java .properties文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM