gpt4 book ai didi

FREEMARKER:避免转义 HTML 字符

转载 作者:行者123 更新时间:2023-12-01 01:00:15 25 4
gpt4 key购买 nike

freemarker 输出有问题...

                [#assign optionsHTML = ""]                    
[#list data as item]
[#assign optionsHTML = optionsHTML + '<option value="' + item.value +'>'+ item.label + '</option>' /]
[/#list]

所以,如果我这样做
<select>
${iptionsHTML}
</select>

otions 的输出得到 html 实体而不是实际的 html .... 所以
&lt;option value=&quot .....

即使我这样做
            [#assign optionsHTML = ""]                    
[#list data as item]
[#noescape]
[#assign optionsHTML = optionsHTML + '<option value="' + item.value +'>'+ item.label + '</option>' /]
[/#noescape]
[/#list]

甚至尝试过
<select>
${iptionsHTML?html}
</select>

但更糟糕的是:(

最佳答案

推杆 #noescape附近#assign没有效果。自动转义仅适用于 ${...} -s 直接嵌入到静态文本(HTML)中。所以在 #assign 里面没有转义禁用.
?html用于“手动”转义字符串。就像在你的例子中,你可以写 optionsHTML = optionsHTML + '<option value="${item.value?html}>${item.label?html}</option>' ,因为您知道该值稍后将被输出非自动转义,而 ${...}字符串文字中的 -s 不会自动转义。

但是,最好的办法是,您可以组织代码,以便生成 HTML 的内容不会在变量内部构造 HTML,然后打印变量,而是将 HTML 直接打印到输出中。这就是 FTL 的设计目的。

关于FREEMARKER:避免转义 HTML 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com