Freemarker中&字符转义问题求助:避免自动转为&
解决方案:阻止Freemarker自动转义&字符
你的问题核心是Freemarker默认开启了HTML自动转义,导致&被转换为&,进而在AD中显示为P&ampO。要解决这个问题,只需要在Freemarker表达式中显式关闭转义即可:
直接修改现有表达式
在你当前的字段处理表达式末尾添加?no_esc内建函数,告诉Freemarker不要对输出内容进行HTML转义:
"JobTitle":"${requestField?keep_after("Functienaam:<br/>- ","r")?keep_before("<br/>")?no_esc}"
原理说明
Freemarker默认会将HTML特殊字符(如&、<、>等)转义为对应的实体编码,这是为了避免XSS安全问题。但在你的场景中,需要保留原始的&字符用于AD的部门标识,因此通过?no_esc可以强制关闭该字段的转义逻辑,确保用户输入的&直接输出,不会被二次转义。
内容的提问来源于stack exchange,提问作者Damian Eickhoff
相关产品推荐
相关产品推荐

