在一些grails代码中,我一直在阅读,我看到一个名为“field()”的函数似乎在执行以下操作;
给出形式
的对象def a = [a:b, c:d, e:123]
字段(a)将产生字符串
a="b" c="d" e="123"
即,它将这些名称值对转换为适用于html / xhtml / xml元素的形式。
我在grails文档中搜索了这个函数,但无法在任何地方找到它。它从何而来?它是其中一个其他框架(如SiteMesh)的一部分,可以神奇地包含在Grails中吗? (虽然我无法在SiteMesh文档中找到它!)
我在我的代码中尝试了它,但它有效,但它偶尔抛出一个异常,我想看到这个函数的真正定义以及它应该如何被使用。
答案 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 << "/>"
}