grails 中 -> 和 ? 以及*.
收藏》》http://blog.sina.com.cn/s/blog_537517170102uxj5.html 多谢了!
(2014-07-22 11:19:19)分类: Grails学习 |
例如 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? :""
即:前的不为空为本身的部分可省。