grails函数称为“field(n)”在哪里记录?

时间:2009-08-07 08:30:15

标签: grails field

在一些grails代码中,我一直在阅读,我看到一个名为“field()”的函数似乎在执行以下操作;

给出形式

的对象
def a = [a:b, c:d, e:123]

字段(a)将产生字符串

a="b" c="d" e="123"

即,它将这些名称值对转换为适用于html / xhtml / xml元素的形式。

我在grails文档中搜索了这个函数,但无法在任何地方找到它。它从何而来?它是其中一个其他框架(如SiteMesh)的一部分,可以神奇地包含在Grails中吗? (虽然我无法在SiteMesh文档中找到它!)

我在我的代码中尝试了它,但它有效,但它偶尔抛出一个异常,我想看到这个函数的真正定义以及它应该如何被使用。

1 个答案:

答案 0 :(得分:1)

它是Grails标记lib的一部分,位于此文件中:

SRC / JAVA /组织/ Codehaus的/常规/ Grails的/插件/网络/标签库/ FormTagLib.groovy

这是它的代码:

/**
  * A general tag for creating fields
  */
def field = {attrs ->
    resolveAttributes(attrs)
    attrs.id = attrs.id ? attrs.id : attrs.name
    out << "<input type=\"${attrs.remove('type')}\" "
    outputAttributes(attrs)
    out << "/>"
}
相关问题