FreeMarker是一个基于Java的模板引擎,是一个基于模板生成文本输出(从HTML到自动生成的源代码)的通用工具。它是一个Java包,是Java程序员的类库。它本身并不是最终用户的应用程序,而是程序员可以嵌入到他们的产品中的东西。
我想转义变量的输出,该变量在示例 2 中使用了 <#assign> 的捕获语法。 示例1: <#assign test1='{"json": "more"}' /> 我想转义变量的输出,该变量在示例 2 中使用了 <#assign> 的捕获语法。 示例1: <#assign test1='{"json": "more"}' /> <div data-test1="${test1}"></div> 输出(转义): <div data-test1="{"json": "more"}"></div> 示例2: <#assign test2><@compress single_line=true> { "json": "because it is more complex with list, if else etc." } </@compress></#assign> <div data-test2="${test2}"></div> 输出(未转义): <div data-test2="{ "json": "because it is more complex with list, if else etc." }"></div> 这正是docs描述此功能的方式。还有用于转义的docs。 我需要使用第二个示例,因为 test2 生成起来更复杂。 有没有办法强制转义或将非标记输出转换为标记?我尝试了?esc,<#outputformat><#autoesc>,重新分配给另一个变量。 没有任何效果。 找到解决方案。通过内置 ?markup_string 将标记输出转换为字符串。然后就会自动转义了。 <div data-test2="${test2?markup_string}"></div> 输出: <div data-test2="{ "json": "because it is more complex with list, if else etc." }"></div> 您需要将捕获生成的 JSON 的部分放入 <#outputformat "JSON">...</#outputformat> 中。 (plainText,或任何非标记输出格式也可以很好地工作,只要不抑制标记内的转义即可。) <#outputformat "JSON"> <#assign test2><@compress single_line=true> { "json": "because it is more complex with list, if else etc." } </@compress></#assign> </#outputformat> <div data-test2="${test2}"></div>
使用 Freemarker 为 GeoServer GetFeatureInfo 格式化日期时出现问题
我在尝试使用 Freemarker 模板以所需格式显示日期时遇到了一些麻烦。 我将带有日期信息的点存储在通过 FME 过程编写的 PostGIS 数据库中...
Geoserver FreeMarkerTemplate GetFeatureInfo 图像未显示
我正在尝试使用Freemarker模板在点击时显示建筑物的相应图片。 getfeatureinfo 功能按预期工作,但图片在
Struts 2.5.34 到 Struts 6.3 迁移 目前我们的应用程序是 struts 2.5.3 版本。 随着 Apache 宣布停产,我们正在使用官方 migra 升级到 Struts 6(确切地说是 6.3)...
为什么升级到 Struts 6.3.0.2 后,Struts 标签中的转义不起作用
如果我有如下的 Struts 2 标签 结果应该...
struts 升级 6.3.0.2 后,innerHtml 属性不起作用
如果我有一个如下的JSP 如果我有一个如下的JSP <s:optiontransferselect leftTitle="<strong>All system groups</strong>" </s> 结果应该是 <strong>All system groups</strong>,但看起来是因为它带有带有 escapeHTML 的强标签,我尝试将 struts.ui.escapeHtmlBody 设置为 false 但不起作用。 struts.ui.escapeHtmlBody设置仅允许在标签正文中切换转义选项。例如,如果您使用嵌套标签并允许转义标签正文中使用的所有标签。它不允许关闭 Struts 标签属性的转义值。 Struts 标签的内容是使用 Freemarker 生成的。最新版本的 Struts 使用其自动转义 html 输出功能,该功能在 Freemarker 中默认启用。 禁用自动转义 对于单个插值,您可以使用 ?no_esc 禁用自动转义: TEMPLATE <#-- Let's assume we have "HTML" output format by default. --> ${'<b>test</b>'} <#-- prints: <b>test</b> --> ${'<b>test</b>'?no_esc} <#-- prints: <b>test</b> --> 您还可以使用 noautoesc 指令禁用整个部分的自动转义: TEMPLATE ${'&'} <#-- prints: & --> <#noautoesc> ${'&'} <#-- prints: & --> ... ${'&'} <#-- prints: & --> </#noautoesc> ${'&'} <#-- prints: & --> 就像输出格式一样,这只适用于块内的部分(“着色”逻辑)。 也可以在 ftl 标头中禁用整个模板的自动转义。然后可以使用 autoesc 指令重新启用某个部分: TEMPLATE <#ftl autoesc=false> ${'&'} <#-- prints: & --> <#autoesc> ${'&'} <#-- prints: & --> ... ${'&'} <#-- prints: & --> </#autoesc> ${'&'} <#-- prints: & --> 当转义被禁用时,您还可以强制转义单个插值,使用 ?esc: TEMPLATE <#ftl autoesc=false> ${'&'} <#-- prints: & --> ${'&'?esc} <#-- prints: & --> 当然,autoesc 和 ?esc 也可以在 noautoesc 块内工作。 现在您可以欺骗 Freemarker 禁用单个值的自动转义 <s:optiontransferselect leftTitle="'<strong>All system groups</strong>'?no_esc"</s> 另一种选择是使用自定义模板来自定义 html 输出,使用自定义 Freemarker 模板,您可以在其中关闭自动转义。
无法在我的 .ftl 文件中导入 .ftl 文件 - freemarker
我正在尝试使用 freemarker 来模板化我的 java 类。 我的配置 bean 是: @豆 公共 FreeMarkerConfigurer freeMarkerConfigurer() { FreeMarkerConfigurer 配置器 = 新 FreeMarkerConf...
是否有禁用 ParseException 的选项? 我的 HTML 字符串的语法有问题? HTML 字符串是由我的用户创建的,因此可能存在语法...
使用 freemarker 模板将字符串转换为 JSON 对象
<#assign loanInformation = '{"8":{"loanId":"8","employeeId":"7","loanType":"1","totalAmount":"100000",&q...
我有一个创建哈希图的 springboot 应用程序。我想创建一个具有一个标题和多行的表(映射中的每个值一个)。以下代码返回 ISE: 那里...
在我的自定义注册对象中,我有以下代码: @覆盖 公共无效buildPage(FormContext上下文,LoginFormsProvider表单){ logger.info("正在启动自定义表单..."); ...
我正在使用Freemarker模板在Spring Boot应用程序中生成PDF。 我有一个字符串 示例:“这 是 A 新的 线” 但生成 PDF 后,
我正在尝试修改我的高级 HTML/PDF 模板,以便隐藏发票上的所有库存项目(项目行)。我找到了 SuiteAnswers 33495 和以下代码片段 <#if !item.item?contai...
如果我有一个像这样的序列: <#assign seq = ['a', 'b', 'c', 'd', 'e']> 我需要获得一些新序列,它们是原始序列的过滤版本。例如: <#assign seq1 = ['a...
如果我在 Freemarker 中有一个序列,例如: <#assign seq = ['a', 'b', 'c', 'd', 'e']> 我需要获得一些新序列,它们是原始序列的过滤版本。例如: <#ass...
我正在将我的项目从旧启动 1.x 升级到 2.3.12,几乎完成,但有一件事是 make 问题。 在这个项目中我使用了freemarker,因此升级了boot并使用了starter-freemarker。 服务器即将上线...
FreeMarker 模板支持具有以下语法的 if 语句 <#if hot> 很热。 我查看了文档,找不到任何对 if-else 状态的支持......
<#if myVar = "test"> A <#else> 乙 <#/if> 如果 myVar 为 null / 未定义,则 A 和 B 都不会输出。这是通过添加来解决的!变量之后: <#if myVar!...
根据文档 truncate_c 应该在任何给定位置截断文本: truncate_c 将截断任何字符,而不仅仅是字尾。为了 例如,longName?truncate_c(16) 返回“This ...