问题标签 [velocity-template-language]

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 投票
3 回答
3269 浏览

unit-testing - 如何为速度模板编写单元测试?

这甚至可能吗?

大家好。我正在使用 AWS AppSync + DynamoDB 构建应用程序,并且我开始拥有大量解析器映射模板,所有这些模板都是使用 Apache Velocity 模板语言 (VTL) 编写的。

我开始担心的是,这些 vtl 文件对应用程序非常重要(因为它们定义了如何检索数据)并且其中一个可能造成严重破坏的错误。所以就像系统的任何关键部分一样......我想为他们编写一些自动化的单元测试。但我没有发现很多其他人这样做。

  1. 如果您使用 VTL(使用 AppSync 或 API 网关),您如何测试它们?
  2. 甚至可以为速度模板编写自动化测试吗?
  3. 还是我走错了路,我应该只使用 Lambdas 作为我的解析器?

提前致谢!

0 投票
2 回答
366 浏览

java - 创建一个使用速度的可重用解析方法

我们正在使用速度来解析我们的模板。

Velocity 开发人员指南建议为每次解析创建一个新的 VelocityContext

但是VelocityEngineRuntimeInstances呢?

我们可以重复使用它们还是每次调用都创建新实例更好?VelocityEngine 的新实例会导致内存泄漏吗?

0 投票
1 回答
645 浏览

velocity - If Else Construct with comparison not working in Velocity Template

我有以下速度模板构造

即使 大于 1比如 10 ,$no_of_entries它也会打印Its False

这意味着$no_of_entries > 1不工作

为什么$no_of_entries > 1条件返回 false ?

我尝试打印值$no_of_entries并打印正确的值> 1

编辑 :

我也尝试使用下面的代码

但它不起作用并抛出异常 -

0 投票
2 回答
472 浏览

typescript - 将 API 网关中的速度模板转换为使用 AWS CDK 在 typescript 中传递

我正在使用带有 AWS CDK 的 typescript 为 api 网关生成 cloudFormation 模板。我有一个 Apache Velocity 模板,可以帮助我转换我的响应。当我使用打字稿创建 API 网关时。如何从代码本身传递模板。我需要在需要字符串的 IntegrationOptions 接口中的 responseTemplates 中传递我的模板。我一直无法找到任何合理的方法将其转换为字符串。

0 投票
1 回答
1284 浏览

aws-api-gateway - 如何使用 aws api 网关的速度模板转换 json 中的数组?

我一直在为 aws api-gateway 编写速度模板,以转换来自我的 api 的 json 响应,从而为用户提供一致的响应。

我一直在尝试转换这个json:

对于这个预期的:

我已经能够使用这个模板为对象创建一个数组:

虽然这个模板已经能够将我的 json 对象数组转换为所需的响应。下面提到的例子:

模板将此 json 转换为预期的输出:

基本上,我想转换一个字符串数组,而不是一个键值对。任何线索都会有所帮助。提前致谢。

0 投票
1 回答
211 浏览

escaping - 从速度模板中删除括号(xml 转义)

我是速度模板的新手。我正在使用速度模板来解析 xml 格式的数据。使用以下代码获取用户 ID: $esc.xml("$!userDetails.userId).replaceAll("&#[0-9a-fA-F]+;","")

生成的输出:[ABC123] 异常输出:ABC123

有人可以在这里帮助我吗?另外,我用谷歌搜索了 apache velocity wiki,但没有找到。此外,如果提供一些 wiki 来获取更多信息会更好。

提前致谢!!

0 投票
1 回答
338 浏览

email - 在桌面和移动设备上切换图像以获取电子邮件 | 邮递

我们正在改用 Mailjet API 来发送电子邮件。我们现在面临的一个问题:我们正在使用 apache 速度模板作为 html 正文,我们在 html 的 src 标记中提供图像 url。但是由于明显的原因(图像大小等),我们为台式机、移动设备/ipad 提供了不同的图像

我们如何确定何时在客户端设备上呈现电子邮件时要呈现哪个横幅。mailjet 是否有任何切换图像功能?

提前致谢。

0 投票
0 回答
113 浏览

java - 如何在速度模板 html 中添加全局变量,以便全局变量重置为初始值

示例:初始 currentpageNo 在速度上下文中为 1。

设置($currentpageNo=$currentpageNo+1)

$currentpageNo

对于每一页

当前页面值为 2

但要求是它应该增加。

请让我知道是否有任何可能的方法

0 投票
1 回答
319 浏览

java - 速度模板 - 显示和隐藏

我有以下速度模板。

currentAddressAddress2仅当其中有时才应显示第二行。否则不应该显示。但我得到以下输出

地址 1* : RJ 街

地址2 :

但我想要 ,

地址 1* : RJ 街

只要

0 投票
0 回答
858 浏览

amazon-web-services - 如何在 AWS DynamoDB AppSync 解析器中编写 Upsert 突变查询(插入或更新)

我在 AppSync GraphQL 查询的帮助下开发 DynamoDB。

我有一个 DynamoDB 表,其中用户名是分区键(散列键),timestamp_value 是排序键(范围键)。

我针对一项保存两件事,即一项是阅读,第二项是活动(如锻炼、运动等)。为了添加这两项,我们有不同的 UI 屏幕。这两件事可能具有相同的时间戳,因此它将保存在一个项目中。

所以现在我需要一个可用于上述操作的 upsert(插入或更新)查询,因为当您尝试插入新读数时,它将检查该项目是否存在。如果存在,那么它将更新或不更新,然后它将插入项目,并且当用户想要添加新活动时必须发生同样的事情。

我对文档感到困惑,并且没有找到用于执行 upsert 操作的确切 AppSync 请求映射解析器。

下面是 PutItem 请求映射解析器:-

以下是 UpdateItem 请求映射解析器:-

那么如何更新解析器以便进行 upsert 操作呢?