[Grails] list时不能使用if判断?!
andrie6184
2009-07-29
Grails是初学,对Groovy的语法也不甚了解,刚才碰到了一个以往常的java知识无法理解的现象,希望有知道缘由的前辈给予指点:
我希望list一个domain时能够通过判断session中的用户所属群组而给出不同的list,于是我写了下面的代码 if (session.usersInfo?.group?.id == 1) { [productsInstanceList: Products.findAllByProvider(session.usersInfo, [max: params.max])] flash.message = "${session.usersInfo?.group?.id == 1} + ${params.max} + ${Products.countByProvider(session.usersInfo)}" } else { [productsInstanceList: Products.list(params)] } 出乎意料的是页面并没有显示相应的列表,而flash.message的值却是: true + 10 + 2 显然if里的语句执行了,但是为何值没有显示出来呢,如果有哪位知道请不吝赐教,先谢过了。 |
|
JohnnyJian
2009-07-29
[productsInstanceList: Products.findAllByProvider(session.usersInfo, [max: params.max])] flash.message = "${session.usersInfo?.group?.id == 1} + ${params.max} + ${Products.countByProvider(session.usersInfo)}" 两行交换一下 |
|
andrie6184
2009-07-30
我试过交换了,结果一样~~~基本就是那个给productsInstanceList赋值的这句只要在if里面就没效果。
|
|
JohnnyJian
2009-07-30
用Grails 1.2
Grails 1.1用Groovy 1.5,不支持if语句有返回值,Grails 1.2用的是Groovy 1.6,支持这样子 或者直接写return [productsInstanceList: ...]也可以 |
|
copoplar
2009-09-03
JohnnyJian 写道 用Grails 1.2
Grails 1.1用Groovy 1.5,不支持if语句有返回值,Grails 1.2用的是Groovy 1.6,支持这样子 或者直接写return [productsInstanceList: ...]也可以 没有的事,条件语句之前先定义变量,内部赋值,返回一个变量就可以嘛! |