1
class User {   
    static constraints = {  
       password(unique:true, length:5..15, validator:{val, obj -> 
          if(val?.equalsIgnoreCase(obj.firstName)) { 
              return false  
          }  
       } 
    } 
}

このグルーヴィーな構文は本当に紛らわしいと思います。grails/groovy を学ぼうと数日を費やしました。私はそれが何をするのか知っていますが、私はそれを本当に理解していません。

誰かがこれがどのように機能するか説明できますか?

制約とは パスワードが関数として呼び出されるクロージャーですか?どのように呼ばれますか?

バリデータについてはどうですか、それはどのような構文ですか?

私が言ったように、私はそれが何をするかを見ることができます。

4

2 に答える 2

2

はじめに - Groovy の使用に関する基本的な知識が必要な部分があります。

//Domain Class
class User {
    //A property of the domain class 
    //corresponding to a column in the table User.
    String password

    //Domain classes and Command objects are treated specially in Grails
    //where they have the flexibility of validating the properties 
    //based on the constraints levied on them.
    //Similar functionality can be achieved by a POGO class
    //if it uses @Validateable transformation at the class level.   
    static constraints = {  
       //Constraints is a closure where validation of domain class
       //properties are set which can be validated against when the domain class
       //is saved or validate() is called explicitly.
       //This is driven by AbstractConstraint and Constraint java class 
       //from grails-core

       //Constraint on password field is set below.
       //Here password is not treated as a method call
       //but used to set the parameter name in the constraint class on which
       //validation will be applied against. Refer AbstractConstraint 
       //for the same.
       password(unique:true, size:5..15, validator:{val, obj -> 
          //Each of the key in the above map represents a constraint class 
          //by itself
          //For example: size > SizeConstraint; validator > ValidatorConstraint
          if(val?.equalsIgnoreCase(obj.firstName)) { 
              return false  
          }  
       } 
    } 
}

上記は、制約がどのように機能するかの基本です。詳細を知る必要がある場合は、その使用法についてさらに質問がある場合に必ずアクセスする必要があるソースの一部を次に示します。

明らかに、SO は、制約またはそれ以上に関連する実装で行き詰まっている場合に質問するのに適した場所です。問題のあるプログラムの状況を克服するために、このコミュニティを自由に使用してください。

于 2013-08-25T02:22:52.397 に答える
0

同じ質問があり、Groovy の書籍/ドキュメントで説明されている構文も見つかりません。次に、Google でこのブログを見つけました: http://www.artima.com/weblogs/viewpost.jsp?thread=291467、私の質問に答えました。

于 2014-09-01T03:18:53.897 に答える