问题标签 [apache-velocity]

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 回答
135 浏览

amazon-web-services - 如何在 AWS API Gateway 中将对象转换为 JSON?

我有一些想要使用 API Gateway 转换的简单数据:

我能够循环数据:

预期结果是:

然而,实际结果是:

$elem产生{id=1, name=Foo}这似乎是对象被字符串化的内容。我想在 JSON 中使用它,我该如何实现?

我已经尝试过,$elem.stringify()但这不起作用。$input.json($elem)$elem.json()

0 投票
0 回答
433 浏览

json - 处理来自 aws apigateway 的嵌套集成响应

我有来自AWS Lambda的JSON响应到AWS API-GATEWAY,如下所示:-

在从 API Gateway 发送到客户端应用程序之前,我想修改响应中的密钥,如下所示:

AWS ApiGateway 中,我们有映射模板来转换来自 Lambda 的响应并使用Apache Velocity离开 API Gateway 。我正在使用application/json格式来创建映射模板

下面是我为转换编写的代码——

我在点击它后从 api 网关收到的响应如下 ---

我还是 API 网关的新手,所以如果有人能提供帮助,那就太好了。

0 投票
1 回答
513 浏览

arrays - 如何在 Velocity 模板语言 (VTL) 中获取数组中的最大值

使用速度模板语言(VTL),我想得到一个数组的最大值。我通过 Apache Velocity 的文档查看了很长时间,但找不到执行此操作的方法。

这是我的示例数组:

在这个例子中,我想得到34

0 投票
1 回答
141 浏览

java - 如何在 Intellij 中为 catch 语句更改速度模板

我想直接使用记录器在 catch 块中打印,例如:

Logger.getLogger(Example.class.getName()).log(Level.SEVERE, null, ex);

我在 Settings - File and Code Templates for Catch Statement body 中检查了 Velocity 模板

默认情况下,它与

尝试更改:

但是 Logger 语句出错了,而 NAME 没有按照指南中提供的那样选择类名称: https ://www.jetbrains.com/help/idea/file-template-variables.html

每当我使用 try-catch 块或尝试使用资源块来捕获时,想要自动将 logger 语句放入 catch 块中,这样它就有:

0 投票
1 回答
211 浏览

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

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

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

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

提前致谢!!

0 投票
1 回答
1007 浏览

amazon-web-services - 如何在 AWS appSync 的 Apache Velocity 请求映射模板中操作字符串和数组

这是我第一次使用 VTL,所以如果我的代码很愚蠢,请更正我的代码。

我想要达到的目标

Graphql 架构:

默认响应模板:

使用默认响应模板,我得到的结果

我的请求模板

为了获得所需的输出,我更改了响应模板,因为我想循环从数据库获得的响应,并使用AWS 解析器映射文档中{city=}给出的子字符串方法从字符串中删除,这就是我面临的地方问题。

我的回复模板

我得到的回应:

但是,当我使用该行#set ($tempCity = $city)并注释掉它上面的行时,我得到以下响应:

这意味着$city具有 value {city=jaipur},因此我想对其进行清理并将其添加($sanitisedListOfCities)并作为响应返回。

但我得到null的结果是子字符串方法。

那么如何清理来自 DB 的响应并返回它呢?

0 投票
0 回答
491 浏览

java - 在没有 Maven 的 Java 应用程序中使用 Apache velocity 1.7 或 2.0

有人可以详细说明在 Java 插件项目中使用 Velocity 模板引擎的步骤,而不使用 Maven 来构建和解析依赖项。

我想手动下载所需的插件/依赖项并将它们打包为我的插件的一部分。最后,我想要基于模板和一些日志文件生成渲染文件的最低限度的功能。我不是在寻找如何启动引擎、创建上下文、加载模板文件或创建文件。而是如何设置包含准备在 eclipse 中的插件开发环境中使用的速度引擎的环境。

我在网上找到的所有示例都建议使用 Maven 来解决依赖关系,这在我的情况下是不可能的,因为我的团队中有就地构建基础设施。

0 投票
1 回答
184 浏览

arrays - Veocity:如何在数组中查找值的频率,然后按频率顺序对值进行排序

我有任何速度数组也有重复值。我想创建一个具有唯一值的数组,其中所有值都根据它们在原始数组中的计数/频率进行排序。

例如:

pagelist数组具有页面名称,其中很少出现在该数组中多次出现。我需要一个具有唯一页面名称的数组,该数组按照它们在原始页面列表数组中的频率顺序进行排序。

任何人都可以帮忙吗?我试过了,但我的代码不起作用......

0 投票
1 回答
1279 浏览

amazon-web-services - 在 Apache Velocity 模板语言中附加字符串变量

我想在 API Gateway 映射模板中构造查询字符串。我有这样的东西

这个想法是只要输入中提供了条目,就追加新字符串。

我的代码有效吗?还有其他方法可以追加吗?

0 投票
1 回答
463 浏览

java - 在 gradle 中导入 apache 速度会降级 HttpServletResponse

我有一个带有以下代码的spring boot项目:

在我添加速度依赖项之前一切正常:

现在我得到:
在 Eclipse 中:The method setCharacterEncoding(String) is undefined for the type HttpServletResponse
并且在gradle bootJar

所以我认为导入 HttpServletResponse 的库版本在某种程度上受到这些依赖项的影响。

我的春季启动插件是:id 'org.springframework.boot' version '2.3.2.RELEASE'

同一项目中的所有依赖项是:

gradle dependencies我可以看到速度集javax.servlet:servlet-api:2.3但没有速度依赖javax.servlet项根本不会出现在 gradle 依赖项中,所以我不知道之前的版本是什么。

通过注释掉,我可以确定implementation 'org.springframework.boot:spring-boot-starter-web'如果速度不是依赖项,则提供 javax.servlet。(根据gradle dependencies版本 2.3.2 incompileClasspath(n)in implementation

我也试过gradle dependencyInsight --configuration compile --dependency javax.servlet:servlet-api没有速度,但得到了No dependencies matching given input were found in configuration 'compile'.

我认为这些问题非常接近,但我仍然不确定如何在 gradle 中进行:setCharacterEncoding questions
Apache
Velocity + Servlet 3.0