gpt4 book ai didi

java - 在java中解析速度变量

转载 作者:行者123 更新时间:2023-12-01 18:46:32 24 4
gpt4 key购买 nike

以下是我想要做的示例。我有一堆文件,例如 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 对象的更多信息:
http://velocity.apache.org/engine/devel/developer-guide.html#The_Context

希望有帮助。

关于java - 在java中解析速度变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com