FreeMarker(七)Html转义

在不做任何处理的情况下,往页面传一串Html代码,它会嵌套到页面代码中,一起被编译并且显示。

比如:某个用户把自己的用户名写成a标签,最后显示出来的用户名就是一个超链接
例:

//传递的参数
map.put("sp6", "这是一段带有攻击性的字符串请点击");

页面代码:




进度条测试



${map.sp6}

页面显示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPnC2k64-1570546997250)(/uploads/201710/attach_14eeea087b1c4fc8.png “aaaaa”)]

有两种解决方案:

1.在字符串后面加?html

${map.sp6?html}

2.使用<#escape>转义
值得注意的就是,<#escape>仅仅只对当前文件中的值做转义,而不会去处理嵌套的其它文件(Include)和宏

	<#-- escape标签将Html代码作为字符串直接显示于页面 -->
	<#escape x as x?html>
	

特殊字符串: ${map.sp1}

特殊字符串: ${map.sp2}

特殊字符串: ${map.sp3}

特殊字符串: ${map.sp4}

<#-- 内部不需要转义则的部分使用<#noEscape>标签-->

取消转义 <#noEscape>${map.sp5}

你可能感兴趣的:(FreeMarker)