从字符串创建力度模板的最佳方法是什么?
我知道可以在其中传递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首先会尝试将字符串转义为特殊字符,然后将其发送给解析。你想要的是字面量,这意味着你需要通过。可能会造成一些混乱。 在相当于。
问题内容: 是否可以将模板字符串创建为常规字符串 然后将其转换为模板字符串 没有,以及其他动态代码生成方式? 问题答案: 由于您的模板字符串必须动态地(在运行时)引用该变量,因此答案是: 否,没有动态代码生成是不可能的。 但这很简单: