TagLib输出错误的编码

时间:2014-07-08 20:01:09

标签: grails taglib html-encode

我正在使用TagLib,但它呈现的是一种奇怪的行为,而不是输出字符,如<">,它输出&lt;,{ {1}}和&quot;

代码:

&gt;

}

在.gsp中我有

class LoginTagLib {
static defaultEncodeAs = [taglib:'html']
//static encodeAsForTags = [tagName: [taglib:'html'], otherTagName: [taglib:'none']]
def loginControl = 
{
    if(session.user)
    {
        out << "Hello ${session.user.name}"
        out << """[${link(action:"logout", controller:"user"){"Logout"}}]"""
    }
    else
    {
        out << """[${link(action:"login", controller:"user"){"Login"}}]"""
    }
}

当我打开页面时,我有:

<g:loginControl />

但页面的源代码是:

Hello Jane Smith[<a href="/Blogito/user/logout">Logout</a>] 

我尝试过使用<div id="loginHeader"> Hello Jane Smith[&lt;a href=&quot;/Blogito/user/logout&quot;&gt;Logout&lt;/a&gt;] </div> .encodeAsHTML()decodeHTML,到目前为止还没有任何工作

2 个答案:

答案 0 :(得分:6)

删除此行:

static defaultEncodeAs = [taglib:'html']

再试一次。

答案 1 :(得分:6)

您也可以告诉它将其作为文本发送(没有编码)  变化

static defaultEncodeAs = [taglib:'html']

static defaultEncodeAs = [taglib:'text']