簡體   English   中英

在Java中解析速度變量

[英]Parse velocity variables within java

以下是我想做的一個例子。 我有一堆文件,例如test1.vm:

Welcome ${name}. This is test1.

然后,我有一個名為defaults.vm的文件:

#set($name = "nmore")

我想要使​​用defaults.vm中的變量渲染test1.vm(和其他測試文件),而不使用#parse,因為我必須修改所有測試文件。

有沒有辦法從隨附的Java文件中執行此操作?

我不確定您是否有任何約束或其他特定要求,但是如果您沒有嘗試使用Velocity API,該怎么辦? 像這樣:

Context context = new VelocityContext();

Template template = Velocity.getTemplate("src/main/resources/defaults.vm");
template.merge(context, NullWriter.NULL_WRITER);

StringWriter writer = new StringWriter();
Template toBeParsedTemplate = Velocity.getTemplate("src/main/resources/test1.vm");
toBeParsedTemplate.merge(context, writer);

String renderedContent = writer.getBuffer().toString();
System.out.println(renderedContent);

這個想法是用從defaults.vm生成的變量填充Context對象,並使用相同的上下文來評估test1.vm

我已經嘗試使用Velocity 1.7和commons-io 2.4(對於NullWriter )運行良好,但是我不確定這是否可以滿足您的要求,或者您是否正在尋找其他替代品(不使用Velocity API) )。

有關Context對象的更多信息,請Context
http://velocity.apache.org/engine/devel/developer-guide.html#The_Context

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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