Freemarker输出$和html标签等特殊符号
分类: freemarker 2014-12-09 10:34 591人阅读 评论(0) 收藏 举报
场景:程序员都不喜欢看文档,而更喜欢抄例子。所以,我们把平台组的组件都做成例子供别人参考。我们前端展示层使用的是freemarker,所以遇到这个问题,比如我们要让前端显示freemarker自己的源码时就有问题了(因为我们例子程序的页面也是使用freemarker)。遇到的问题如下:
1、如何显示html源码,而不是让浏览器解析这些html,方法是使用freemarker的html转义。
比如我们显示img标签,就是如此:${'<img src="xxxxxxx"/>'?html},这样最终在页面上展示的内容就是:<img src="xxxxxxx"/>,而不会被浏览器解析。
2、显示freemarker源码,比如${}符号,则可以如下:
${r'${obj.name}'},这样最终显示的结果就是:${obj.name},而不会被freemarker解析。这里要注意,前边那个标红的“r”字符是关键点。
3、自定义宏的结束符号不能出来的解决办法:比如我们自定义了个宏叫做:<@cfw.column></@cfw.column>,如果要显示源码,结束的那个符号"</@cfw.column>”是显示不出来的,这个时候可以采用字符转义的方式,比如:
${'</@cfw.column''},这样显示的结果就是:</@cfw.column>
不算什么技术含量的东西,写下来防止忘记,也顺便帮大家解决点问题。
分享到:
相关推荐
为了转义特殊字符,FreeMarker支持多种转义符号,例如 `/";` 表示双引号、`/';` 表示单引号等。 例如: ``` ${'/"annlee/"'} ``` 输出结果为 `\"annlee\"`。 2. **复杂表达式**:可以使用算术运算符、...
文本是模板中最直接输出的部分,这部分内容不包含任何特殊符号或语法结构,例如: ``` Welcome ${user}! ``` 这里的“Welcome ”和“!”都是文本,而`${user}`则是一个插值表达式。 ##### 2. 注释 FreeMarker支持与...
- **特殊符号转义**:对于特殊符号,如双引号(`"`), 单引号(`'`), 反斜杠(`\`)等,Freemarker 提供了对应的转义方法。 - **数值**:直接写出数字即可,如 `123`。 - **布尔类型**:可以直接写 `true` 或 `false`。 -...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x>y)> ...
如果某段文本中包含大量的特殊符号,FreeMarker提供了另一种特殊格式:可以在指定字符串内容的引号前增加r标记,在r标记后的文件将会直接输出.看如下代码: ${r"${foo}"} ${r"C:\foo\bar"} 输出结果是: ${foo} C:\foo\...
4. **FTL指令**:FreeMarker提供的指令,类似于HTML中的标签,但使用`#`作为前缀进行标识,这些指令本身不会出现在最终输出的文档中。 #### 三、FTL指令详解 FTL指令是FreeMarker提供的一系列命令,用于控制模板的...
上面的代码中的逻辑表达式用括号括起来主要是因为里面有 > 符号,由于 FreeMarker 会将 > 符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号。 4.2 switch...
Freemarker是一个用Java语言编写的模板引擎,它基于一种简单而强大的模板语言,能够帮助开发者高效地生成文本输出,如HTML网页、电子邮件等。Freemarker的主要优势在于其灵活性和易用性,非常适合用于动态网站或Web...
什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................
FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................
4.4 输出处理:`<@>`和`<#>`标签用于输出处理,例如`<@include file="header.ftl">`可以包含其他模板。 4.5 自定义函数:通过`freemarker.template.utility`包中的工具类或者自定义`DirectiveModel`,可以实现模板...