grails中->和?以及*. grails 教程

初学grails,对bootsrap.goovy 中的 servletContext ->一头雾水,这是groovy中的简写方式,用于将参数params传递给谁,
例如 MyObject mo-> 其实相当于 MyObject mo = new MyObject(params);
即传递一个 实例mo
例如 在controller 中validate,调用commond,将params传入commond类中

classMemberController{

defsearch={SearchCommandcmd->

if(cmd.hasErrors()){

redirect(action:'error')

}else{

//dosomethingelse

}}}

----------------------------------

classSearchCommand{

Stringteamname

Stringusername

Stringgender

staticconstraints={

gender(inList:["F","M"])

}}




grails中->和?以及*. grails 教程
?.
用于判断非空,如 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{printlnit}打印的结果为:347通过上面的例子,我们可以知道,“*.”操作符的操作对象是一个List对象,如上面的list对象;然后它的结果也是一个List对象;最后还有一个size()方法,是在取元素的长度。通过结果,我们知道,我们的“*.”操作符首先对list对象的每一个元素进行size()运算,然后把运算得到的每一个结果作为元素组成一个新的list对象sizes。可以知道,上面的“*.”操作符的运算相当于下面的代码:def list = ['abc','yyyy','1234467']def sizes =list.collect{it.size()}sizes.each{printlnit}同样的结果,但上面的代码比起“*.”操作符就麻烦多了。知道了“*.”操作符的作用,我们就可以对它进行更多的应用。假设我们有如下的一个GroovyBean:classEmpl{String nameint 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{printlnit}结果为:121520




  

爱华网本文地址 » http://www.aihuau.com/a/25101015/264873.html

更多阅读

ios7.1.1固件下载和刷机教程 iphone固件刷机教程

ios7.1.1固件下载和刷机教程——简介ios7.1.1更新内容:进一步改进了Touch ID的指纹识别、修复了可能影响键盘响应能力的错误、修复了启用VoiceOver后使用蓝牙键盘时出现的问题越狱动态:目前7.1.1暂时不能越狱,建议各位PY按照自身需求

openkore使用教程 仙境传说openkore教程

openkore使用教程——简介仙境傳說RO腳本完整指令(Openkore)以及使用教程。openkore使用教程——方法/步骤openkore使用教程 1、初始化 : - 解压。- 得出资料夹control、fields、logs、Plugins、src、tables 和一堆数据及 启动程序

iPhone照片导出到电脑以及同步教程 同步助手无法导出照片

iPhone照片导出到电脑以及同步教程——简介尽管每天都能见到很多iPhone用户,但是他们大多数并不清楚 iPhone 和 iTunes 的同步原理。读完这篇文章后,相信您将对 iPhone 的照片同步有个清楚的认识。简单来说来分为两种:一、将iPhone里

Autocad2012安装教程 cad安装教程2014

Autocad2012安装教程——简介很多人觉得安装Autocad很难,其实只要找到合适的安装包、注册机和附带安装教程就容易了。本人亲测该版本Autocad2012在系统winXP/win7/win8/win8.1均可安装并正常运行和使用(注:自己系统WIN8后升级WIN8.1,帮

声明:《grails中->和?以及*. grails 教程》为网友用辣条欺负了她分享!如侵犯到您的合法权益请联系我们删除