应用中,Domain对象往往需要Status、Type属性,且一般就3-5条,各Domain之间也没什么共性,管理起来就非常麻烦。
Grails中,可以通过枚举类型轻松实现
1. 在src/groovy文件夹下创建枚举对象
public enum ExpenseGroupStatus {
New,
Approved,
WriteOff
}
public enum ExpenseGroupType {
Monthly,
BusinessTrip
}
注意,groovy类不支持内部类,所以无法放在Domain内部(就算可以,也不建议,太乱)
文件也可以放在grails-app/domain下,不会再数据库中生成对应table,但还是建议放在src下
2. 在domain中使用
ExpenseGroupType type
ExpenseGroupStatus status
数据库中仍然自动采用了字符串保存
`status` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
就TM这么简单,因为有类型的限制,连inList验证都可以省略了
3. 在gsp中使用
<g:select name="type" from="${ExpenseGroupType.values()}"/>
4. 在controller中使用
ExpenseGroup e = new ExpenseGroup(params)
e.status = ExpenseGroupStatus.Approved
简单到爆。。。。
缺点:如果要更新条目,就需要重新编译重启应用,大型系统估计就哭了。
传统做法是将信息保存在数据库中,更新条目只需要向数据库里插入记录。
分享到:
相关推荐
**Grails 概述** Grails 是一个基于 Groovy 语言的开源 web 应用程序框架,它构建在 Java 平台上,旨在...通过深入学习 "Grails 中文参考手册",开发者可以充分利用 Grails 的各种特性,构建出高质量的 web 应用程序。
- **Hello World示例**:在新创建的应用中,你可以通过创建一个简单的控制器和视图来实现经典的“Hello, World!”程序,体验Grails的快速开发能力。 3. **使用IDE** Grails支持多种集成开发环境(IDE),如...
用户可以创建可复用的Grails脚本,并利用事件来扩展脚本功能。Grails还支持Ant和Maven,这意味着可以利用这两种构建工具的生态来管理Grails项目。 对象关系映射(GORM)是Grails框架中的一个重要组成部分,它为...
通过定义Groovy类并使用Grails的GORM(Grails Object Relational Mapping)来与数据库交互,可以轻松实现数据持久化。 4. **控制器(Controllers)** 控制器负责处理HTTP请求,调用业务逻辑并生成响应。Grails的...
在Grails中,我们可以利用AJAX技术实现这种交互,AJAX即异步JavaScript和XML,它允许页面在不刷新整个页面的情况下与服务器交换数据并局部更新页面内容。这正是实现联动效果的关键,因为它能让用户体验更加流畅,...
在Grails这个基于Groovy的敏捷开发框架中,实现分页功能对于任何Web应用程序都是至关重要的,特别是当处理大量数据时。Grails提供了一些内置的支持,但如果你需要在自定义的控制器和视图中实现分页,那么就需要遵循...
1. 学习入口:对于中文开发者来说,中文文档降低了学习Grails的门槛,帮助理解和掌握Grails的基本概念、框架结构、开发工具以及最佳实践。 2. 快速上手:文档通常包含安装指南、教程、API参考等,为开发者提供从零...
《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...
**Grails 框架详解** ...无论是初学者还是经验丰富的开发者,都能从Grails的简洁设计和强大功能中受益。通过深入学习Grails,你可以快速构建出符合现代Web标准的应用程序,同时享受动态语言带来的编程乐趣。
不管对于初学者,还是高级编程人员,这个文件都是一个非常好的助手,本人也是在学习的过程中发现的,而且从中学...Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题
本文详细介绍了如何在Grails框架中利用JSON和Ajax技术实现异步Web应用。通过学习这些技术及其在Grails中的具体应用,开发者可以构建出更为高效、交互性强的Web应用。此外,我们还探讨了JSON与Ajax的历史背景和发展...
在Grails框架中,文件的上传与下载是常见的功能需求,尤其在开发涉及大量文档、图片或媒体文件处理的应用程序时。以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 ...
通过利用Grails提供的便利工具和库,开发者可以快速实现复杂的Ajax功能,同时保持代码的整洁和可维护性。无论是简单的数据获取还是复杂的业务流程,Grails都能提供强大的支持,让Ajax在Grails应用中发挥出应有的价值...
通过《Grails权威指南》,你可以学习到如何利用Grails的强大功能来开发高效、可扩展的Web应用,同时也了解到如何利用Groovy语言和Grails框架的最佳实践,提升你的开发技能。这本书深入浅出地讲解了Grails的各个方面...
Grails作为一个全栈的、基于Groovy语言的Web应用开发框架,提供了一套较为简便的方式来集成和实现邮件发送功能。Grails 3版本作为该框架的更新迭代产物,同样支持邮件发送服务。 首先,要在Grails 3中开发邮件发送...
在了解了Grails的基本结构后,可以通过创建简单的控制器和领域类来实现基本功能。例如,创建一个用于联系人管理的控制器和领域类,处理CRUD操作。Grails的自动化工具如GORM(Grails Object-Relational Mapping)将...
Grails框架是MVC(Model-View-Controller)结构的实现,它包含以下几个核心组件: - **Model**: 代表应用程序的数据模型,通常由领域类(Domain Classes)来表示,这些类是Groovy对象,具有ORM(对象关系映射)功能...
8. **持续集成与自动化测试**:Grails 支持单元测试和集成测试,学习如何编写测试用例,并利用 Jenkins 或 Travis CI 实现持续集成。 **文档资源** 提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip...
Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...