`

grails vaidate()与hasErrors区别

阅读更多
现有一个domain如下
class Book {
    String name
    Double price
        static constraints = {
        name(blank:false,unique:true)
        price(nullalbe:true)
      }
}


可以用validate()来验证domain的一个实例
def book=  new Book()
 if(book.validate()) {
    // do something with book
}
else {
    book.errors.allErrors.each {
        println it
    }
}

这时vaidate()方法根据Book的constraints 来check,book.validate()返回false,而且默认的在执行save()之前会调用validate()
if(book.save()) {
    return book
}
else {
    book.errors.allErrors.each {
        println it
    }
}


看下面的hasErrors代码
def book2 =  new Book(name:'Grails',price:'a')
  if(!book2.hasErrors()) {
    // do something with book2
}
else {
    book2.errors.allErrors.each {
        println it
    }
}

在这个时候如果你通过hasErrors来check(可能是因为类型转换),如上面double类型price的值为“a”,book2.hasErrors()返回值为true.

我做了一个测试,即
def book3 =  new Book(name:'Grails',price:'a')
  if(book3.save()) {
    render book3
}
else {
    book3.errors.allErrors.each {
        println it
    }
}

这时虽然price的值为'a',但是book3仍能保存成功,只是保存的price的值为0
分享到:
评论

相关推荐

    Grails企业web应用开发与部署

    《Grails企业Web应用开发与部署》 在现代软件开发领域,Grails作为一个基于Groovy语言的开源Web应用框架,以其高效、灵活和强大的特性深受开发者喜爱。它提供了丰富的插件系统,使得企业级Web应用的开发变得快速而...

    Grails Grails Grails

    2. **GORM(Grails Object Relational Mapping)**: GORM 是Grails的ORM框架,提供了与数据库交互的能力,支持关系型数据库,如MySQL、PostgreSQL等。它提供了CRUD操作,以及事务管理和动态查询。 3. **插件系统**...

    Grails权威指南 Grails权威指南

    10. **持续集成与部署**:Grails与常见的CI/CD工具如Jenkins、GitLab CI/CD等良好集成,方便自动化部署和持续集成。 通过《Grails权威指南》,你可以学习到如何利用Grails的强大功能来开发高效、可扩展的Web应用,...

    Eclipse下搭建Grails项目

    【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...

    Grails技术精解与Web开发实践.part2

    自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。 我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。

    Grails技术精解与Web开发实践.part1

    自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。...我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。

    Grails技术精解与Web开发实践.pdf

    Grails技术精解与Web开发实践这本书是针对Grails框架的一本教程书籍,它详细介绍了Grails框架的安装和配置、核心概念、主要组件以及如何运用Grails进行Web应用的开发。书中可能涵盖了以下知识点: 1. Grails框架的...

    grails-用户手册

    GORM是Grails的持久化框架,它实现了Hibernate和ActiveRecord的功能,使得与数据库的交互变得简单。通过定义领域类,你可以轻松地完成CRUD(创建、读取、更新、删除)操作。 五、Grails插件系统 Grails的插件系统...

    Grails技术精解与web开发实践2-10章

    《Grails技术精解与Web开发实践2-10章》是针对Grails框架的一份珍贵资源,适合初学者及有经验的开发者深入理解并掌握Grails技术。这本书的章节涵盖了从基础到进阶的多个方面,旨在帮助读者全面了解和运用Grails进行...

    Grails技术精解与web开发实践11-20章

    《Grails技术精解与Web开发实践11-20章》是一本专注于Grails框架的深度解析书籍,尤其适合初学者和希望提升Grails开发技能的IT从业者。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、灵活和强大的特性...

    eclipse开发grails插件

    5. **开发与调试**:在Eclipse中,你可以直接编辑Grails的源代码,使用内置的Groovy编辑器进行语法高亮和代码提示。通过右键点击项目,选择"Run As" -> "Grails Command"可以运行Grails的命令,例如"run-app"来启动...

    grails快速开发web

    - **轻松入门系列**:介绍了如何搭建 Grails 开发环境、通过与 Java 的比较快速掌握 Groovy 语法,以及 Grails 实战基础。 - **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中...

    the definitive guide to grails 2

    《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...

    grails-2.4.4.zip

    《Grails 2.4.4 框架深度解析》 Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4...

    grails中文入门简介

    Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...

    Grails入门指南 -- 针对grails1.0.4更新

    #### 二、Grails环境搭建与基本应用 - **环境要求**: - **JDK5**及以上版本。 - **Grails1.0.4**版本。 - 支持的数据库(如MySQL、PostgreSQL等)。 - **开发工具**: - IntelliJ IDEA 8.1用于开发Grails应用,...

    Groovy和Grails配置方法

    #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的代码风格,这使得它非常适合用于...

    eclipse插件grails(groovy)

    Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    《Grails技术详解:中文文档与Fckeditor-0.9.5插件解析》 Grails,作为一款基于Groovy语言的开源Web应用框架,以其高效、简洁的特性深受开发者喜爱。它集成了许多Java EE的功能,同时简化了开发流程,使得开发人员...

Global site tag (gtag.js) - Google Analytics