首页 > 解决方案 > Grails 和 HTML 编码

问题描述

我知道这个项目有很多问题,但是在访问了大多数问题之后,我无法弄清楚这里发生了什么。

我有两个应用程序从同一个数据库接收一个字符串并打印它。

数据库内容:

<p>prob&aacute;ndo</p>

<p>probando</p>

这两个应用程序都在 Config.groovy 中:

grails.views.default.codec = "none"

两个应用程序都以相同的方式恢复数据库中的内容:

def list() {
    def results = System.list()
    [systemInstanceList: results]
}

要打印它:

应用程序1:

<div>${fieldValue(bean: systemInstanceList[0], field: "texto_gl").decodeHTML()}</div>

结果:

probándo

probando

这是预期的结果。

App2,多次尝试:

    <div> 
        <p><b>prob&aacute;ndo</b></p>
        ${systemInstanceList[0].texto_gl.decodeHTML()}
        <br>
        ${systemInstanceList[0].texto_gl}
        <br>
        ${fieldValue(bean: systemInstanceList[0], field: "texto_gl").decodeHTML()}
        <br>
        ${fieldValue(bean: systemInstanceList[0], field: "texto_gl")}
    </div>

结果:

probándo
<p>probándo</p> <p>probando</p>
<p>prob&aacute;ndo</p> <p>probando</p>
<p>prob&aacute;ndo</p> <p>probando</p>
<p>prob&aacute;ndo</p> <p>probando</p>

第一个是对的,但它只是一个测试,内容不是来自数据库。

我还能尝试什么?

也许值得注意的是,第一个应用程序也是将内容写入数据库的应用程序。

标签: htmlgrailsencodingescaping

解决方案


解决了它:

${raw(systemInstanceList[0].texto_gl.decodeHTML())}

但我不明白为什么两个应用程序的行为不同。


推荐阅读