当前位置: 首页 > 面试题库 >

如何使用字符串作为力度模板?

伏默
2023-03-14
问题内容

从字符串创建力度模板的最佳方法是什么?

我知道可以在其中传递String或StringReader 的 Velocity.evaluate
方法,但是我想知道,有一种更好的方法(例如,创建Template实例的任何优势)。


问题答案:

有一些开销分析模板。如果您的模板很大并且反复使用它,则可以通过预先准备该模板来获得一些性能提升。你可以做这样的事情

RuntimeServices runtimeServices = RuntimeSingleton.getRuntimeServices();
StringReader reader = new StringReader(bufferForYourTemplate);
Template template = new Template();
template.setRuntimeServices(runtimeServices);

/*
 * The following line works for Velocity version up to 1.7
 * For version 2, replace "Template name" with the variable, template
 */
template.setData(runtimeServices.parse(reader, "Template name")));

template.initDocument();

然后,您可以template.merge()一次又一次地调用,而无需每次都进行解析。

顺便说一句,您可以将String直接传递给Velocity.evaluate()



 类似资料:
  • 问题内容: 具体来说,我正在尝试使用字符串任意过滤ORM。我已经尝试过exec和eval解决方案,但是我遇到了麻烦。下面的代码不起作用,但这是我知道如何解释我要去的地方的最好方法 问题答案:

  • 问题内容: Java中是否有任何替换机制,我可以在其中传递带有文本的对象,并在出现字符串时替换它。 例如,文本为: 我拥有的对象是和。我想用对象的等效值替换内部给定的字符串。这与替换速度模板中的对象相同。 问题答案: 使用Apache的共享文本。 https://commons.apache.org/proper/commons- text/ 它将为您(及其开源…)

  • 问题内容: 有没有一种简单的方法,例如,但是要使用字符串从一组字符串构建模板? 我有一个基本模板和一个要在基本模板之上构建的页面模板列表(全部作为字符串)。 我想出了如何合并它们的方法,但是我的解决方案很冗长,即使可以使用,看起来也不是很优雅。 问题答案: 您可以使用 function 创建一个新的空模板。然后,您可以使用该 方法 创建一个新的,空的, 关联的 模板。您可以使用方法将其解析为“ i

  • 问题内容: 我用这个: 但是Python 3出现了错误(或者…也许我只是忘了包含一些东西): 谢谢。 问题答案: 在Python3中,文字字符串默认为unicode。 假设这是一个对象,只需使用 的Python2等效于Python3,因此您还可以编写: 若你宁可。

  • 问题内容: 什么正则表达式模式需要我传递给 拆分成字符串使用的所有空格字符(子字符串数组,等)作为分隔符? 问题答案: 某些东西 这会将所有空白分组为分隔符。 因此,如果我有字符串: 这将产生字符串并省略和之间的空白。 正如VonC指出的那样,应该转义反斜杠,因为Java首先会尝试将字符串转义为特殊字符,然后将其发送给解析。你想要的是字面量,这意味着你需要通过。可能会造成一些混乱。 在相当于。

  • 问题内容: 是否可以将模板字符串创建为常规字符串 然后将其转换为模板字符串 没有,以及其他动态代码生成方式? 问题答案: 由于您的模板字符串必须动态地(在运行时)引用该变量,因此答案是: 否,没有动态代码生成是不可能的。 但这很简单: