问题标签 [stringtemplate-4]

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

java - 你能阻止 StringTemplate 输出到标准错误吗?

我目前使用以下内容输出到使用 StringTemplate 的 servlet:

当我这样做时,StringTemplate 会向 Stderr 打印警告;用无用的警告填充日志文件并不理想。

如果我正确理解文档,以下将解决此问题:

顺便说一句,这样做是否会节省在内存中构建一整页字符串的必要性?

0 投票
1 回答
3129 浏览

java - StringTemplate 检查数组在java中是否为空

如果数组不为空,如何使用 StringTemplate 检查?

下面的例子不起作用:

其他(不工作)例如:

输出:

0 投票
1 回答
1164 浏览

java - 如何从资源包中加载 StringTemplates?

我有以下包结构

我想.st从资源包中加载文件。我不知道如何为该文件夹获取正确的文件路径。

我想做类似(来自文档的片段)来加载我的模板:

我还想获得可以在创建可执行 jar 时在运行时访问它们的模板。

0 投票
1 回答
363 浏览

stringtemplate-4 - 在 StringTemplate-4 模板中生成和使用数组

我是StringTemplate4的新手,可能我会问一些过于简单、不可能或愚蠢的问题,但我找不到任何其他信息。到目前为止,我已经设置了这个最小的模板集:

我想得到:

通过调用以下代码:

可能吗?提前谢谢了。

0 投票
1 回答
220 浏览

java - 如何在添加任何属性之前从匿名 StringTemplate (v4) 中获取间隙名称列表?

我正在尝试将 StringTemplate.v4 用于简单的模板,这意味着只有简单的间隙名称,例如%body%-- 我没有使用任何其他功能,例如 if-logic、子模板或表达式。

(老实说,它的API文档记录很差,此时我正在考虑完全放弃它。如果有 JavaDoc源代码链接会很好,所以至少我可以自己挖掘并解决问题。真的很沮丧.)

我正在尝试确定匿名模板中存在的差距,以在尝试使用它之前验证它是否具有所需的差距。

输出:

我发现了为什么在这个谷歌组线程getAttributes()中返回,以及关于这个问题:StringTemplate list of attributes defined for a given template)。nullformalArguments

那么,在填补任何空白之前,如何获得匿名模板中实际存在的所有空白呢?我意识到我可以用 regex做到这一点,但我希望有一种内置的方式来做到这一点。

谢谢。

0 投票
2 回答
519 浏览

stringtemplate-4 - 无法在 StringTemplate 4 中捕获 STException

我无法捕捉到 STGroupFile 抛出的 STException。这是个问题。如果模板不好,我需要中止。为了重现这个问题,我有一个名为 tmp.stg 的不正确的模板文件:

这个处理它的常规代码:

当我运行该脚本时,我收到一条错误消息,但我无法捕获异常:

错误消息来自 STGroupFile.java:

但我无法捕捉到这个异常。我怎样才能捕捉到这个异常并中止?

0 投票
2 回答
644 浏览

java - 为什么我会使用看似简单的 StringTemplate 代码得到 NullPointerException?

我想使用 StringTemplate 4 在我的 Google App Engine 应用程序中呈现视图。

在我的控制器中(如果重要,我将使用 Slim3 MVC 框架),我有以下代码:

page.st我在目录中有一个名为的 ST 文件war/templates/default

当我运行此代码时,我得到以下NullPointerException. 在线查看ST代码时,似乎与文件路径有关。模板文件的路径可通过 Web 浏览器导航到该路径。

这是异常的相关部分:

编辑:

我发现我的文件格式不正确。如果您的 page.st 文件是有效格式,您将不会获得NullPointerException. 这是一个有效 page.st 文件的示例。上面,我添加了从 servlet 呈现此页面所需的内容。

0 投票
1 回答
309 浏览

antlr - StringTemplate V4 ''->" 语法

新手(或愚蠢)问题:

我正在尝试使用 StringTemplate V4 将一种语言转换为另一种语言,例如 C 到 nuSMV。到目前为止,我注意到我必须“检测”我的语法文件 (g4) 以告知我应该替换的内容。例如:

当我尝试运行该代码时,我的 Eclipse 中出现以下异常:

我究竟做错了什么?

0 投票
2 回答
1188 浏览

java - 如何在 StringTemplate 中默认转义 HTML?

在 HTML 模板引擎中,默认占位符文本对 HTML 进行转义是非常好的做法,以帮助防止 XSS(跨站点脚本)攻击。是否可以在 StringTemplate 中实现这种行为?

我试图注册自定义AttributeRenderer转义 HTML,除非format"raw"

但它失败了,因为在这种情况下 StringTemplate 不仅会转义占位符文本,还会转义模板文本本身。例如这个模板:

呈现为:

有人可以帮忙吗?

0 投票
1 回答
1140 浏览

java - 字符串模板 4 STGroupDir 的问题

我们在 java 中使用字符串模板已经有一段时间了,刚刚升级到字符串模板 4.0.7。

在字符串模板 3.2(我们之前使用的版本)中,我有一个名为stringtemplate.stin的字符串模板文件src/main/resources,我们只是有一个名为任何我们喜欢的东西的组,因为它似乎没有什么区别,并像这样加载模板:

更新到 4.0.7 后,如果您希望加载单个文件,我的理解是您需要有一个STGroupDir对象,其名称为模板所在的文件夹。因此,我将 stringtemplate 文件移动到src/main/resources/templates并将上面的代码更改为:

然后当我尝试填充字符串模板时,这会导致抛出一个空指针,并且似乎没有找到任何模板。

我的理解是传递给 STGroupDir 构造函数的 String 应该是模板文件所在的目录,如果在那里找不到模板文件,无论如何都会搜索类路径。我从根本上误解了什么吗?关于我做错了什么的任何建议?