Spring 引导 Freemarker - html 默认转义
Spring Boot Freemarker - html escaping by default
在使用 spring 引导自动配置时,是否有任何方便的方法来默认为所有 freemarker 模板启用 html 转义?
如果不是,添加以下任何解决方案的正确方法是什么(保持 spring 启动自动配置默认值,模板加载器除外)?
- Default escaping in Freemarker
- http://watchitlater.com/blog/2011/10/default-html-escape-using-freemarker/
FreeMarker 2.3.24 的核心功能是自动转义,不过我写这篇文章的时候它还没有发布。在那之前(我猜是 1-2 个月),可以从主页下载 2.3.24-pre01,或者你可以构建 2.3-gae 分支头(尽管如果你只在 2.3.x 中使用自动转义,变化不大。 24 个特征)。目前在那里描述了自动转义:http://freemarker.incubator.apache.org/builds/2.3.24-pre01/_html/dgui_misc_autoescaping.html
如果您不能以这种形式使用 2.3.24,如您链接的第一个 post 所述,您可以使用自定义 TemplateLoader
。由于 templateLoader
(template_loader
) 只是一个 FreeMarker 配置设置,希望它也可以在 Spring 中设置。
在遵循 ddekany 的建议使用 2.3.24 后,这里是解决方案:
将所有模板名称修改为 .ftlh(freemarker 要求自动打开 HTML escaper)- 包括 spring.ftl(如果正在使用)。更新后的 spring.ftlh 可能需要为属性
添加一些 '?no_esc'
调整 freemarker 配置以使用这些文件:
spring.freemarker.suffix=.ftlh
spring.freemarker.settings.recognize_standard_file_extensions=true
修改pom.xml以使用freemarker 2.3.24:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>freemarker-2.3.24-pre01</version>
</dependency>
以下解决方案是使用本地 JAR 文件,因为 2.3.24 尚未在 maven 上:
mvn install:install-file -Dfile="freemarker-2.3.24-pre01.jar" -DgroupId="org.freemarker" -DartifactId="freemarker" -Dversion="freemarker-2.3.24-pre01" -Dpackaging=jar
瞧,自动 freemarker HTML 转义 Spring 启动 ;)
在使用 spring 引导自动配置时,是否有任何方便的方法来默认为所有 freemarker 模板启用 html 转义?
如果不是,添加以下任何解决方案的正确方法是什么(保持 spring 启动自动配置默认值,模板加载器除外)?
- Default escaping in Freemarker
- http://watchitlater.com/blog/2011/10/default-html-escape-using-freemarker/
FreeMarker 2.3.24 的核心功能是自动转义,不过我写这篇文章的时候它还没有发布。在那之前(我猜是 1-2 个月),可以从主页下载 2.3.24-pre01,或者你可以构建 2.3-gae 分支头(尽管如果你只在 2.3.x 中使用自动转义,变化不大。 24 个特征)。目前在那里描述了自动转义:http://freemarker.incubator.apache.org/builds/2.3.24-pre01/_html/dgui_misc_autoescaping.html
如果您不能以这种形式使用 2.3.24,如您链接的第一个 post 所述,您可以使用自定义 TemplateLoader
。由于 templateLoader
(template_loader
) 只是一个 FreeMarker 配置设置,希望它也可以在 Spring 中设置。
在遵循 ddekany 的建议使用 2.3.24 后,这里是解决方案:
将所有模板名称修改为 .ftlh(freemarker 要求自动打开 HTML escaper)- 包括 spring.ftl(如果正在使用)。更新后的 spring.ftlh 可能需要为属性
添加一些 '?no_esc'调整 freemarker 配置以使用这些文件:
spring.freemarker.suffix=.ftlh
spring.freemarker.settings.recognize_standard_file_extensions=true
修改pom.xml以使用freemarker 2.3.24:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>freemarker-2.3.24-pre01</version>
</dependency>
以下解决方案是使用本地 JAR 文件,因为 2.3.24 尚未在 maven 上:
mvn install:install-file -Dfile="freemarker-2.3.24-pre01.jar" -DgroupId="org.freemarker" -DartifactId="freemarker" -Dversion="freemarker-2.3.24-pre01" -Dpackaging=jar
瞧,自动 freemarker HTML 转义 Spring 启动 ;)