2009-08-07 8 views
0

私が読んできたいくつかのgrailsコードでは、次のように見える "field()"という関数があります。"field(n)"と呼ばれるgrails関数はどこに文書化されていますか?

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

フィールドは、(A)

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

すなわち文字列を生成するフォームのオブジェクトを指定

、それは/ HTML/XHTMLのフォームsutiableにこれらの名前と値のペアを変換しますxml要素。

私はこの機能についてgrailsドキュメントを検索しましたが、どこに記述されているのかはわかりません。それはどこから来たのですか? Grailsに魔法のように組み込まれているSiteMeshのような他のフレームワークの一部ですか? (でも、私はSiteMeshのドキュメントでは見つけられませんが)!

私は自分のコードで試してみましたが、動作しますが、例外がスローされることがあります。それは使用されるはずです。

答えて

1

それは、このファイルにあるGrailsのタグのlibの一部、です:

のsrc/javaの/ ORG/Codehausの/グルーヴィー/ Grailsの/プラグイン/ウェブ/の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 << "/>" 
} 
+0

ありがとうございました! (バグもありますが、名前と値のペアの値がnullの場合、例外がスローされます。実際には単にattribute = ""を出力する必要があります) –

+0

興味深いことに、これは文書化されていません。 opt/local/grails-1.2-M1/doc/api/org/codehaus/groovy/grails/plugins/web/taglib/FormTagLib.htmlにはこれが記載されていません –

+1

したがって、JIRAを提出してパッチを提出してください。 ) – chanwit

関連する問題