posts - 431,  comments - 344,  trackbacks - 0

          Grails的驗證功能是建立在Spring's Validator API和數據綁定之上的,但Grails在此特性和約束機制的基礎上又提供了統一的定義驗證約束的方法。
          在一個領域類中,約束constraints被定義在constraints屬性的代碼塊中:

          class User {

          ...

              static constraints = {

          userName(size:5..15, blank:false, unique:true)

          password(size:5..15, blank:false)

          email(email:true, blank:false)

          age(min:18, nullable:false)

          }

          }

          這樣在你每次保存一個對象的時候都回去調用validate方法來驗證.

          當然你可以在任何實例上調用其validate方法去驗證領域類.

          def user = new User(params)

          if(user.validate()) {

          // do something with user

          } else {

              user.errors.allErrors.each {

          println it

          }

          }

          如果你在注冊的時候, 比如要輸入兩次密碼, 這時候想把錯誤消息也放入領域類的errors屬性里面, 由于領域類的 errors屬性是Spring的Errors接口實例,

          Errors接口提供了訪問這些驗證錯誤的方法,并且還可以取得原始的值。

          具體使用的實現類是BeanPropertyBindingResult

          Java.lang.Object

          org.springframework.validation.AbstractErrors

          org.springframework.validation.AbstractBindingResult

          org.springframework.validation.AbstractPropertyBindingResult

          org.springframework.validation.BeanPropertyBindingResult

          每一個消息對應一個org.springframework.validation.ObjectError對象.所有可以想領域類的errors屬性里面直接添加ObjectError對象就可以了.

           def error = new ObjectError('password', message(code:'pinpin.register.valid.password.notequal'))

           user.errors.addError(error)

          posted on 2008-07-20 22:20 周銳 閱讀(1074) 評論(0)  編輯  收藏 所屬分類: Groovy&Grails
          主站蜘蛛池模板: 望江县| 慈溪市| 同仁县| 兰坪| 荔波县| 南漳县| 肇东市| 和政县| 垦利县| 无极县| 招远市| 聊城市| 镇巴县| 阿克| 金坛市| 阳朔县| 伊宁县| 和硕县| 丹江口市| 荥经县| 岳池县| 腾冲县| 筠连县| 孟津县| 揭东县| 方城县| 通河县| 南京市| 昌黎县| 德昌县| 百色市| 建湖县| 威宁| 宝山区| 双柏县| 含山县| 株洲县| 沁水县| 永泰县| 罗山县| 临夏市|