grails 中 -> 和 ? 以及*.(
初学grails,对bootsrap.goovy 中的 servletContext -> 一头雾水,这是groovy中的简写方式,用于将参数params传递给谁,
例如 MyObject mo -> 其实相当于 MyObject mo = new MyObject(params);
即传递一个 实例mo
例如 在controller 中 validate,调用commond,将params传入commond类中
class MemberController {
def search = { SearchCommand cmd ->
if (cmd.hasErrors()) {
redirect(action:'error')
} else {
// do something else
} } }
----------------------------------
class SearchCommand {
String teamname
String username
String gender
static constraints = {
gender (inList:[ "F", "M"])
} }
?.
用于判断非空,如 man 类, 包含 man.name, man.age。
在JAVA内一般情况下需要判断
if(man!=null){
if (man.name!=null){
System.out.println(man.name);
}
}
而在 groovy中 ,直接简化 成
print man?.name
如果 man为空,返回null
groovy中还可以链式 man?.name?.age
例如 页面中
如果member不为空,返回member.phone,否则返回空字符串,同样道理,如果member.phone不为空,返回member.phone.encodeAsHTML()
另外 ?还有另个用途,就是JAVA的三元
man.name==null?"":man.name
可直接写成
man.name? :""
即:前的不为空为本身的部分可省。
“*.”操作符。
def list = ['abc','yyyy','1234467']
def sizes = list*.size()
sizes.each{
println it
}
打印的结果为:
3
4
7
通过上面的例子,我们可以知道,“*.”操作符的操作对象是一个List对象,如上面的list对象;然后它的结果也是一个List对象;最后还有一个size()方法,是在取元素的长度。
通过结果,我们知道,我们的“*.”操作符首先对list对象的每一个元素进行size()运算,然后把运算得到的每一个结果作为元素组成一个新的list对象sizes。
可以知道,上面的“*.”操作符的运算相当于下面的代码:
def list = ['abc','yyyy','1234467']
def sizes = list.collect{
it.size()
}
sizes.each{
println it
}
同样的结果,但上面的代码比起“*.”操作符就麻烦多了。知道了“*.”操作符的作用,我们就可以对它进行更多的应用。
假设我们有如下的一个GroovyBean:
class Empl
{
String name
int age
}
我们现在有一个Empl对象为元素的List对象:
def list = [new Empl(name:'Tom',age:12),new Empl(name:'Alice',age:15),new Empl(name:'Rose',age:20)]
现在,我们要取得每一个元素的age,组成一个新的List对象:
def sizes = list*.age
下面我们来测试:
sizes.each{
println it
}
结果为:
12
15
20
分享到:
相关推荐
7. **features**目录:这个目录下的文件描述了STS中的各种特性,比如Spring框架的支持、Groovy/Grails开发工具等,每个特性通常对应一个或多个插件。 通过这个更新站点,开发者可以轻松地将STS集成到现有的Eclipse...
Elasticsearch-Head是一个基于Grails开发的Elasticsearch的前端界面,它可以帮助开发者和管理员可视化地监控和管理集群,包括节点状态、索引信息、文档操作等。"compile-after"可能意味着这个版本是在Elasticsearch...
标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...
学习 Grails 需要掌握 Groovy 的基本语法,包括类、对象、闭包以及元编程特性。 2. **Domain Class(领域模型)**:Grails 的核心概念之一是 Domain Class,它用于表示业务对象。这些类自动与数据库进行交互,通过 ...
SpringSource Tool Suite (STS) 是一个基于Eclipse的集成开发环境,专为Spring框架和相关技术提供优化。这个资源是SpringSource Tool Suite的3.9.9.RELEASE版本,适用于Eclipse 4.9(也称为 Oxygen.3a Release)。在...
开发者可以通过研究这些代码来了解如何在Grails应用中创建和管理类型安全密钥,以确保应用在处理敏感信息时遵循最佳安全实践。 在这个开源项目中,Grails Datastore Simple与类型安全密钥的结合,为开发者提供了...
通过深入研究"Prestige-master"中的代码,开发者能够提升自己在Grails框架和Android开发中的技能,掌握如何将两者结合,创建高效、可扩展的应用程序。 总之,"grails-datastore-gorm-plugin-support-2.0.4.RELEASE....
groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...
Grails1.1中文文档-----2009.3.25
groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。
6. **Groovy/Grails支持**:除了Spring框架,STS还支持Groovy和Grails框架,这对于开发基于这些技术的应用程序非常有帮助。 7. **Integration with Git**:内置的Git版本控制支持使得版本管理和团队协作更加方便。 ...
- **Tag Libraries**:介绍Grails中的标签库功能,以及如何创建和使用自定义标签。 4. **General Architecture**:概述Grails的整体架构设计,包括各个组件之间的关系及其工作原理。 5. **Artefact API**:介绍...
标题 "grails-datastore-gorm-tck-1.0.9.RELEASE.zip" 提供的信息表明,这是一个与Grails框架相关的数据存储(Datastore)和GORM(Grails Object Relational Mapping)测试兼容性工具包(Test Compatibility Kit,...
- **验证安装**:在命令行中输入`grails`命令,如果出现Grails的帮助信息,则表示安装成功。 ##### 2.2 升级至最新版本 - **备份旧项目**:在升级前务必做好项目备份。 - **下载新版本**:访问官网下载最新版本。 -...
- 随着Groovy和Grails的不断发展,未来将会有更多先进的特性和工具加入其中。 - 企业级应用领域对快速开发的需求将持续增长,Grails有望成为这一领域的强有力竞争者。 - 开发者可以期待Grails在未来为企业级应用...
- **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中实现 Ajax 功能、处理遗留数据库的方法、利用遗留框架以及如何在 Grails 中使用 WebFlow。 - **高效编程系列**:涵盖使用 ...
4. **Groovy/Grails支持**:Groovy是Spring生态系统中的动态语言,Grails是一个基于Groovy的Web开发框架。STS提供了良好的Groovy和Grails开发环境。 5. **Git集成**:内置Git版本控制系统,方便团队协作和代码管理...
Grails Acegi 0.5插件正是基于这个理念,将Acegi Security的功能引入到Groovy语言和Grails框架中,使得Grails开发者也能享受到Spring Security的强大安全特性。 该插件的核心文件包括: 1. `AcegiGrailsPlugin....
标题中的"grails-plugin-controllers-2.3.3.zip"是一个Grails插件的版本包,主要关注的是Grails框架中的控制器部分。Grails是一个基于Groovy语言的开源Web应用框架,它构建在Java平台上,旨在提高开发效率。这个插件...