Где задокументирована функция grails под названием «field (n)»? - PullRequest
0 голосов
/ 07 августа 2009

В некотором коде grails, который я читал, я вижу функцию под названием field (), которая, кажется, выполняет следующее:

задан объект вида

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

поле (а) будет производить строку

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

Т.е. он преобразует эти пары значений имен в форму, пригодную для элемента html / xhtml / xml.

Я искал документацию grails для этой функции и не могу найти ее нигде. Откуда это взялось? Является ли это частью одной из тех других фреймворков, как SiteMesh, которые волшебным образом включаются в Grails? (Хотя я не могу найти его и в документации SiteMesh!)

Я попробовал это в своем коде, и он работает, но иногда выдает исключение, и я хочу увидеть реальное определение этой функции и то, как она должна использоваться.

1 Ответ

1 голос
/ 07 августа 2009

Это часть библиотеки тегов Grails, расположенной в этом файле:

SRC / Java / орг / Codehaus / заводной / Grails / плагины / Web / TagLib / 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 << "/>"
}
...