Freemarker 中的默认转义

2023-11-24

在 Freemarker 模板中,我们可以使用 escape 指令自动将转义应用于包含的块内的所有插值:

<#escape x as x?html>
  <#-- name is escaped as html -->
  Hallo, ${name}
</#escape>

有没有一种方法可以以编程方式实现类似的效果,定义应用于模板中所有插值的默认转义,包括那些外部转义指令?

Thanks.


详细说明阿提拉的答案:您可以使用类似的类this one然后像这样包装你的模板加载器:

final TemplateLoader templateLoader = new ClassTemplateLoader(this.getClass(), templatePath) {
  /**
   * Replaces the normal template reader with something that changes the default
   * escaping to HTML as to avoid XSS attacks.
   */
  @Override
  public Reader getReader(Object templateSource, String encoding) throws IOException {
     return new WrappingReader(super.getReader(templateSource, encoding), "<#escape x as x?html>", "</#escape>");
  }
};

如果您在添加的部分中不包含换行符,则不会出现行编号问题。但是,您不能将 /[#ftl] 与此方法一起使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Freemarker 中的默认转义 的相关文章

  • Java 中如何将 long 转换为 int?

    Java 中如何将 long 转换为 int 在 Java 8 中更新 Math toIntExact value 原答案 简单的类型转换应该可以做到 long l 100000 int i int l 但请注意 较大的数字 通常大于214
  • 知道 akka actor 何时完成

    有几个人和我一起从事一个项目 一直在试图找出解决这个问题的最佳方法 看起来这应该是经常需要的标准东西 但由于某种原因我们似乎无法得到正确的答案 如果我有一些工作要做 并且我向路由器抛出一堆消息 我如何知道所有工作何时完成 例如 如果我们正在
  • Maven:在项目之间共享源

    我有两个项目 它们是一个共同父项目的子项目 还有一个生成器项目和生成器对应的maven插件项目 此外 两个子项目都使用相同的输入文件 该文件用于代码生成 parent pom child1 jar src main generator in
  • 如何设置评分栏的星星颜色?

    如何设置评分栏的星星颜色 我想要黄色星星 最简单的方法 android progressTint color color 光滑有光泽
  • 如何将json从android发送到php?

    为了将 json 从 android 发布到 php 我使用了 Volley 库StringRequest目的 StringRequest sr new StringRequest Request Method POST url new R
  • 查看登录设备

    我想查看Log在设备上 即System out println 我可以查看DDMS但如何在运行时在设备屏幕上查看APK文件 还有一个适用于 Android 的 Logcat 应用程序 code google com p android ra
  • 关于Java中trim()方法的查询

    我之前提出了一个问题 但遭到了严厉的批评 所以我在这里再次提出 更简单 并重新措辞以吸引那些可能担心我之前提出问题的方式的人 背景 我正在解析一些 HTML 以获取信息 我将所有内容隔离在一系列行中 但我希望抓取的内容以及后面的一堆空格 为
  • Java - Servlet 的默认 contentType

    在servlet中 通常我们会指定一个contentType 然后我们就可以打印出html代码了 response setContentType text html PrintWriter out response getWriter 如果
  • 动态元素 ID 到 setId(int) - Android

    我看到了语法定义setId int and findViewByID int 但我们如何使用findViewById R id row1 我尝试使用这个 Object1 setId Integer parseInt repeat 它没有显示
  • antisamy 解析器强制关闭标签

    我使用 Antisamy 来验证 HTML 我的政策允许 iframe 例如 YouTube 视频 问题是 如果标签为空 像这样 清洗后会是这样的 但它应该有正常的结束标签 这会破坏之后页面上的所有内容 我已经将指令设置为使用大部分 HTM
  • 在 JSON 转换为 CSV 期间保持 JSON 键的顺序

    我正在使用此处提供的 JSON 库http www json org java index html http www json org java index html为了将 json 字符串转换为 CSV 但我遇到的问题是 转换后键的顺序
  • XmlAdapter 到 JAXB 绑定 Joda 的时间间隔?

    我已经被 Web 服务的 JAXB 绑定问题困扰了几个小时 为了准备一个必须返回 Joda Time 类实例 即时 持续时间 间隔等 的更大的 Web 服务 我从一个只有一个返回 Interval 的方法的 Web 服务开始 package
  • 导入数据期间解析日期格式的最佳方法

    我创建了在数据导入 400 K 记录 期间解析视图不同日期格式的方法 我的方法捕获 ParseException 并尝试在不同时使用下一种格式解析日期 问题 在数据导入期间设置正确的日期格式是更好的方法 更快 吗 private stati
  • 如何设置 Eclipse 以停止发生异常的线路?

    如何设置 Eclipse 在发生异常时停止 我有一个 Eclipse 断点设置来在异常时中断 在下面的代码示例中 我遇到的问题是 Eclipse 尝试打开 Integer 源代码 有没有办法让调试器在我的代码示例中显示的位置中断 如果我向下
  • 需要在 java api 中的 Solr 搜索中搜索文本及其周围的几行

    我正在使用 solr 7 7 2 并且我使用 solrj 在 Solr 中编写了一个 Java 程序 该程序在一个巨大的文本文件中搜索单词 我使用以下代码来显示代表整个文本的搜索结果 SolrQuery params new SolrQue
  • 如何从java程序中编译.java文件[重复]

    这个问题在这里已经有答案了 可能的重复 从 Java 内部编译外部 java 文件 https stackoverflow com questions 10889186 compiling external java files from
  • JVM 是否会内联对象的实例变量和方法?

    假设我有一个非常紧密的内部循环 每次迭代都会访问和改变一个簿记对象 该对象存储有关算法的一些简单数据 并具有用于操作它的简单逻辑 簿记对象是私有的和最终的 并且它的所有方法都是私有的 最终的和 inline 下面是一个示例 Scala 语法
  • 使用java服务中的Zxing库从单个图像文件中读取多个条形码

    您好 我已经创建了一个java服务 用于从此处的图像中读取条形码 我使用Zxing库来解码此处的文本 挑战是 如果一个带有单个条形码的文件工作正常 如果有多个条形码 它会产生不相关的结果 我在下面给出了我的代码 pom xml
  • Spring Boot MultipartFile上传getOriginalFileName根据浏览器不同而不同

    我使用的是 spring boot 1 5 7 RELEASE 版本 我使用以下方法上传文件 Autowired private MyService mySerice RequestMapping value uploadFile meth
  • 错误:java.lang.NoSuchMethodError:org/springframework/asm/ClassVisitor.(I)V

    我的 POM 中有这两个依赖项 我认为这是造成此问题的原因 但我尝试了许多不同的方法和更新的版本 但没有任何效果对我有用 有人可以帮忙吗 XML文件

随机推荐

  • `filter(func)` 和 `filter(|x| func(x))` 有什么区别?

    有什么区别filter x func x and filter func 也许一个好的起点是了解如何filter func 可以使用类似于以下的语法来编写filter x func x 我的代码如下所示 fn filter out dupl
  • Application.Current.MainWindow.Close 与 Application.Current.Shutdown

    Should Application Current Shutdown 不作为关闭 WPF 应用程序的最佳实践吗 我有一个小型的多窗口应用程序 关闭 似乎对我的所有退出命令都很有效 但是 我被告知要始终使用Application Curre
  • 使用 Nodejs 的 Firebase 电话身份验证

    我查看了 firebase 的文档 但没有得到任何在服务器端通过电话验证用户身份的答案 我发现的只是 FIREBASEUI 或客户端身份验证 那么 我如何通过服务器端对用户进行身份验证 例如以表单形式向他们提供电话号码的输入 并在该表单上向
  • datetime_select 的值为零?

    当使用 作为 新 对象表单时 如何将选项设置为默认不选择日期而是选择 nil null 值 相关模型中的字段可以选择为空 但默认情况下 datetime select 控件没有空选项 我想你想要 f datetime select star
  • 简单的去抖动例程

    您是否有一个简单的去抖例程可以方便地处理单个开关输入 这是一个简单的裸机系统 没有任何操作系统 我想避免具有特定计数的循环构造 因为处理器速度可能会波动 我想你可以在这里学到很多东西 http www ganssle com debounc
  • 如何忽略数组解构中的某些返回值?

    当我只对索引 0 之外的数组值感兴趣时 在数组解构时是否可以避免声明无用的变量 在下文中 我想避免声明a 我只对索引 1 及以后感兴趣 How can I avoid declaring a const a b rest 1 2 3 4 5
  • 如何使用 Node.js 抓取包含动态内容的页面?

    我正在尝试刮一个website但我没有得到一些元素 因为这些元素是动态创建的 我在node js中使用cheerio 我的代码如下 var request require request var cheerio require cheeri
  • 如何在coldfusion中使用CFQuery执行2个或多个插入语句?

    是否可以使用执行 2 个插入或更新语句cfquery 如果是的话怎么办 如果不是 在 Coldfusion 中执行多个查询的最佳方法是什么 即仅打开一个到数据库的连接 我想每次我们打电话cfquery我们正在打开新的连接数据库 是否可以执行
  • Ember、Ember 数据和 MongoDB 的 _id

    我已经看到有人讨论过这个问题 但我仍然对处理 Mongo 的问题有疑问 id into id 我使用 mongoose 作为我的 ORM 虽然它有虚拟 但我似乎无法让它正常工作 以下是我的猫鼬模型中的内容 尝试从后端修复 mongoose
  • 如何在列表视图中实现OnScrollListener?

    我从服务器获取 500 条记录 我想在列表视图中显示 10 个项目 当列表视图到达末尾时我需要加载另外 10 个项目 依此类推 我在网上看到了很多例子 但我无法解决它 请帮助我 这是我的代码 public void onCreate Bun
  • C# 泛型继承和协变第 2 部分

    这是我的原始线程 C 泛型继承和协变 仅在我的只读界面上 我希望继承起作用 public delegate Boolean EnumerateItemsDelegate
  • 包包含同名的对象和包

    我在使用 Maven 或 Eclipse 编译一些 Scala 时遇到问题 我尝试从包含命名空间和同名类的 Java jar 导入一个类 我可以编译scalac 然而 例如 Java 项目 jar 包含 src foo bar java s
  • 如何在 Node.js Web 应用程序中管理 MongoDB 连接?

    我正在使用节点 mongodb native用MongoDB驱动写一个网站 我对如何管理连接有一些疑问 仅使用一个 MongoDB 连接来处理所有请求是否足够 是否存在任何性能问题 如果没有 我可以设置一个全局连接以在整个应用程序中使用吗
  • Xcode 4.2 无法调试 iOS 4.2.1 (8C148)

    我最近更新到 Xcode 4 2 我还将我的新 iPad 2 和 iPod 最新一代 更新到了 iOS 5 我构建了我的应用程序并且可以毫无问题地调试它们 我运行 iOS 4 2 1 8C148 的旧版 iPod 无法运行 也没有出现任何错
  • Firebase BigQuery 服务器偏移时间

    背景 我正在将 Firebase 分析数据导出到 BigQuery 我正在使用 cron 作业来处理 BigQuery 中的数据以获得洞察力 Problem 为了能够只处理增量数据 即自上次运行 cron 作业以来到达的数据 我需要一种方法
  • .htaccess URL 重写挑战

    我在某些 URL 重写方面遇到问题 下面的所有内容都工作正常 但我需要添加一条从 URL 中删除查询字符串的规则 site com page a b会变成site com page 有人可以帮忙吗 我已经阅读了一些关于 htaccess 的
  • 如何在Nuxt SSR模式下更改页面的URL而不重新加载整个页面?

    我正在尝试构建一个主详细信息视图 其中列表和详细信息在桌面上并排显示 但在移动设备上的不同页面上显示 如下图所示 我的列表中可能有 500 到 10000 个项目要显示 我用 10000 个项目模拟了这两种方法 请随意更改 server a
  • 如何使用 Java 类运行 Hadoop?

    我正在关注这本书Hadoop 权威指南 我对示例 3 1 感到困惑 有一个 Java 源文件 URLCat java 我用javac将其编译为 URLCat class 然后使用jar把它包进罐子里 书上说要用 hadoop URLCat
  • 使用 PyEphem 计算阴影长度

    我正在使用 PyEphem 并想要计算阴影的长度 假设一根单位长度的棍子种植在地上 长度由 cot phi 给出 其中 phi 是太阳高度角 如果我错了 请纠正我 我不知道在太阳上使用什么场 在下面的示例中 我使用角度 alt import
  • Freemarker 中的默认转义

    在 Freemarker 模板中 我们可以使用 escape 指令自动将转义应用于包含的块内的所有插值 lt escape x as x html gt lt name is escaped as html gt Hallo name 有没