问题标签 [rythm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
354 浏览

java - 将 JSON 对象传递给节奏模板

我有一些Rythm模板注册表,需要开发将由客户端模板选择呈现的代码(例如,客户端将通过 http 调用我的代码并提供模板名称和参数)。由于调用是由 http 执行的 - 在我这一端,我将客户端提供的参数作为 JSON(我什至没有代表用户输入的类),可能会解析为map of maps of maps.... 事实证明,在模板中使用这样的结构并不方便:我所能做的就是使用Map::get(key)方法并且只有 1 级嵌套:

下一个模板获取错误param.get("person")是由于假定为Object没有get(key)方法:

我记得有些模板引擎支持 map-as-object 语法,例如传递map of maps of ... of objects给模板并在模板中以 POJO 的形式访问它(或者像在 JS 中访问 JSON 对象的字段),例如:

节奏可以吗?

或者也许有另一种方便的方法来解决这个问题?

0 投票
1 回答
159 浏览

rythm - rythmengine CompileException “注释仅在源级别为 1.5 或更高版本时可用”

我用 Java 1.8 调用 rythmengine,通过 Gradle 编译和执行。

这是一个例外:

org.rythmengine.exception.CompileException:语法错误,注释仅在源级别为 1.5 或更高版本时可用

...

相关的 Java 源代码行:


在我的代码的其他地方,我使用注释没有任何问题,并且我已经验证 Gradle 确实在运行 JRE 1.8。这个问题似乎发生在 Rythm 的内部编译器上。

0 投票
1 回答
583 浏览

java - RythmEngine 和 TemplateClassManager 堆的最大对象:内存泄漏问题

在我的公司,我们正在使用 Rythm,因为它的便利性和在项目中的易用性。在我们的项目中,我们发送了几封电子邮件(每天 1000-2000 封电子邮件);电子邮件模板是具有动态语法(Java 代码)的 Rythm 模板。性能似乎不错,并且通过了集成测试。

尽管如此,我们已经试验了几个内存问题,这些问题会在 3-4 天后导致内存泄漏。Profiling,我们观察到 Rythm 是堆中最大的对象(我们的 profiling 大约需要 1 天),甚至比 Spring 中的 ClassLoader 或 BeanFactory 还要多。

使用堆工具分析器,我们观察到RythmEngineTemplateClassManager是最大的对象

我们可以从堆分析工具中看到,这些对象很大,而且似乎随着时间的推移而增加。

在此处输入图像描述

和一个 GC 根。

在此处输入图像描述

关于内存池:Par Eden 似乎很好,CMS Old Generation 似乎没有增加,或者至少很慢(即使在一些主要的 GC 之后,似乎还有空闲内存)。堆内存看起来不错(测试和分析大约需要一天),但在生产中达到最大堆后会缓慢增加。

我们询问是否有人尝试过此功能(使用 rythm 并在几天后出现内存泄漏),或者只是提供一些如何在生产环境中使用 rythm 提高性能的最佳实践。或者任何关于如何处理深度内存泄漏的想法都将受到欢迎。

重要说明[30-09-2015]:我们已从 Rythm 更改为 FreeMarker 作为模板引擎,并且(正如我们的监控系统所反映的那样)内存似乎更加稳定并且大约是最大内存的 20% (-Xmx1024)。我们将在本周内提供更详细的信息。但似乎 Rythm 可能存在一些内存问题,几天后会导致内存泄漏。

重要提示[06-10-2015]:经过几天的密集监控,我们使用 FreeMarker 作为模板引擎检查了内存是否稳定。我们已经在我们的产品中删除了 Rythm 的所有依赖项,因为正如我们的研究所反映的那样,它有一个潜在的内存泄漏问题没有解决,几天后(在我们的例子中是两天)驱动到 OOME 堆。问题已关闭。

0 投票
0 回答
92 浏览

java - 在节奏模板中嵌入图像

我正在使用 Rythm 模板引擎从我的 java 代码发送模板电子邮件。但是当我尝试使用标签嵌入图像时,该图像不会出现在邮件中。

谁能告诉我如何在节奏模板中嵌入图像?如果 rythm 引擎无法处理这个问题,建议我使用更好的模板引擎。

谢谢你。

0 投票
1 回答
57 浏览

rythm - 如何动态生成csv错误标头

我正在尝试生成一个有错误的 csv 文件。我的错误对象是一个错误对象列表。每个错误对象都包含 id 和 message

现在在我的 CSV 文件中,例如:如果列表包含 2,我需要生成

消息 Id1、消息 1、消息 Id2、消息 2。

我想知道是否可以使用 rythm 模板引擎。

0 投票
1 回答
37 浏览

rythm - 使用 rythm 生成 xml 文件时如何对文本进行编码

在生成 xml 文件时,我必须在错误消息标记中编码文本。我的标签是“ErrorMessage”任何带有特殊字符的文本,例如 <>#$%^&“/ErrorMessage”。使用 rythm 模板引擎生成文件时,有没有办法对这些特殊字符进行编码?

0 投票
1 回答
56 浏览

google-app-engine - Rythm Template Engine 和 GAE 重新加载模板,无需重启(开发模式)

在 Google App Engine(开发服务器)中,是否可以在更改时重新加载 Rythm 模板?我正在使用 engine.file_write.enabled=true 和 engine.mode=prod 配置 RythmEngine 以避免文件权限错误,但是每次我更改模板时都必须重新启动 GAE 服务器。

0 投票
2 回答
93 浏览

rythm - using java annotations in rythm template engine

In the quest of getting JUnit tests to be part of how we use Ryhtm we came up with the code snippet below. All went well until we added

which obviously is a java annotation and uses the @ marker as a syntax element that is also being used by Rythm. How can the desired effect be achieved to get the @annotation? To simply escape the @@ does not work it gives a

error. So How can a Java @ annotation be used ?

I have also filed this as a bug report at https://github.com/greenlaw110/Rythm/issues/285

0 投票
1 回答
241 浏览

java - 如何在 Rythm 中转义 @ 符号?

我正在使用 Rythm (yup no h),一个 Java 模板引擎。

这个想法是替换模板文件(例如文本文件)中的占位符。

就我而言,我正在处理 JSON。要调用 Rythm 引擎,我只需要做:

输出是

如您所见,该值"bar"转到了@acme,引擎将其误认为是占位符。我怎样才能逃脱@符号?

谢谢

0 投票
1 回答
51 浏览

rythm - Rythm 动态评估的空白行

如果 firstName 作为 null 传递,引擎会插入一个空行。有什么办法可以避免吗?“紧凑”在这里不起作用。