• FreeMarker(七)Html转义


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

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

    //传递的参数
    map.put("sp6", "这是一段带有攻击性的字符串<a href='https://www.baidu.com/'>请点击</a>");

    页面代码:

    <html>
    <head>
    <meta charset="utf-8">
    <title>进度条测试</title>
    <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script>
    </head>
    <body>
    ${map.sp6}
    <br/>
    </body>

    页面显示:

    aaaaa

    有两种解决方案:

    1.在字符串后面加?html

    ${map.sp6?html}

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

        <#-- escape标签将Html代码作为字符串直接显示于页面 -->
        <#escape x as x?html>
        <p>特殊字符串: ${map.sp1}</p>
        <p>特殊字符串: ${map.sp2}</p>
        <p>特殊字符串: ${map.sp3}</p>
        <p>特殊字符串: ${map.sp4}</p>
        <#-- 内部不需要转义则的部分使用<#noEscape>标签-->
        <p>取消转义 <#noEscape>${map.sp5}</#noEscape></p>
        </#escape>
  • 相关阅读:
    使用parted对大于2T的磁盘进行分区
    iso系统镜像刻录到光盘和U盘
    戴尔R710服务器安装系统——配置raid
    UltraISO 9.7.1.3519注册码
    H3C交换机配置vlan
    kvm创建新虚拟机
    Windows添加永久静态路由
    gitlab部署步骤+汉化
    php配置php_pdo_mysql模块
    为git服务器配置gitosis管理权限
  • 原文地址:https://www.cnblogs.com/chenss15060100790/p/8538746.html
Copyright © 2020-2023  润新知