Grails解释并关闭HTML元标记

时间:2009-12-14 06:32:44

标签: grails gsp

在我的Grails GSP文件中,我正在使用HTML元标记:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

问题是Grails会关闭此标记并将其呈现为:

<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>

这使W3C的HTML验证失败(因为我的doctype是HTML而不是XHTML)。 有没有解决这个问题?我怎么能让Grails不解释 元标记?

我正在使用grails-1.2-M4。

跟进: 我为此问题创建了Grails错误GRAILS-5696

2 个答案:

答案 0 :(得分:3)

不确定这是最美丽的解决方案,但至少它适用于您的情况:

<%= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' %>

嗯......这不起作用,因为Grails在按原样显示之前进行了预处理。

所以我看到的唯一解决方案是创建TagLib并输出如下内容:

class MetaTagLib {

    static namespace = 'my'

    def meta = {
        out << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>"
    }
}

并使用它:

<my:meta />

有效。测试

答案 1 :(得分:0)

您可以使用<!DOCTYPE html>that's it, really!)验证为HTML5而不是HTML 4.01。 HTML5 allows trailing slashes even in the HTML syntax,以便允许这样的系统生成伪XHTML。

当然,HTML5还不是一个完成的标准;它可能会改变。我认为它的这方面不太可能改变,但是对于许多新的HTML5功能仍然存在一些相当有争议的争论,所以请记住它还没有最终确定。