首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共济会-用&替换&

共济会-用&替换&
EN

Stack Overflow用户
提问于 2012-12-06 18:31:19
回答 2查看 6.5K关注 0票数 2

如果我在某个字段中有&符号(来自db,不能更改),并且我想通过共济会显示这个符号.但是如果显示器(来自共济会)读过&,有什么方法可以做到呢?

重申一下,我不能在手之前更改值(或者至少我不想改变),我想让共济会者“取消”&。

要进行双重迭代,这是一个与许多其他xml放在一起的值。这个值本身就会显示出来,上面有标签.所以就像

代码语言:javascript
复制
<someTag>${wheeeMyValueWithAnAmpersand}<someTag>

因此,我不希望所有的符号都逃脱,否则xml看起来会很有趣.就在插值中的那个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 23:04:15

哦天啊。

我看到了问题:代码是这样写的:

代码语言:javascript
复制
<#escape x as x?xml>
<#import "small.ftl" as my>
<@my.macro1/>
</#escape>

在这个时候,我认为,在它里面的所有调用,都是外景--这当然是文档所暗示的

escape.html

代码语言:javascript
复制
<#assign x = "<test>"> m1>
  m1: ${x}
</#macro>
<#escape x as x?html>
  <#macro m2>m2: ${x}</#macro>
  ${x}
  <@m1/>
</#escape>
${x}
<@m2/>      

产出如下:

代码语言:javascript
复制
&lt;test&gt;
m1: <test>
<test>
m2: &lt;test&gt;

然而,当您导入文件时,情况就不是这样了,而转义.逃跑了!

解决方案:http://watchitlater.com/blog/2011/10/default-html-escape-using-freemarker/

上面的链接详细介绍了如何解决问题。实际上,它需要加载一个不同的FreemakerLoader,它用转义标记包装所有模板。

代码语言:javascript
复制
class SomeCoolClass implements TemplateLoader {
    //other functions here
    @Override  
    public Reader getReader(Object templateSource, String encoding) throws IOException {  
        Reader reader = delegate.getReader(templateSource, encoding);  
        try {  
            String templateText = IOUtils.toString(reader);  
            return new StringReader(ESCAPE_PREFIX + templateText + ESCAPE_SUFFIX);  
        } finally {  
            IOUtils.closeQuietly(reader);  
        }  
    }  

这是上面链接中的片段。您可以使用现有的templateLoader创建类,并将所有所需的方法都推迟到此。

票数 2
EN

Stack Overflow用户

发布于 2016-07-23 17:48:51

从FreeMarker 2.3.24开始,不再需要TemplateLoader“黑客”。有一个名为output_format的设置,它指定是否需要转义以及需要转义什么。这可以在全局配置和/或使用template_configurations设置的每个模板名称模式。这样做的推荐方法甚至更简单(来自手册):

..。如果recognize_standard_file_extensions设置为true (这是默认的incompatible_improvements设置设置为2.3.24或更高),源名以".ftlh“结尾的模板将获得”.ftlh“输出格式,而".ftlx”获取"XML“输出格式

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13750160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档