2012-07-18 72 views
0

我正在尝试在grails gsp中传递2个变量中的findAllWhere:一个是属性,另一个是我希望该属性相等的值。 I.E(作者:马克吐温)我无法弄清楚语法和我收到的错误没有帮助。Grails FindAllWhere与变量

${Application.findAllWhere((${group1}): ${group})} 

Group1是从控制器传递的变量,而group是来自g:each的变量。这是错误。

Error 500: 
Servlet: default 
URI: /archetype/application/applicationPortfolio/GroupLangTechOwn 
Exception Message: No signature of method: 
C__projects_Archetype_grails_app_views_application_applicationPortfolio_gsp.$() is 
applicable for argument types: 
(C__projects_Archetype_grails_app_views_application_applicationPortfolio_gsp$_run_closure2_closure56_closure144) values: [C__projects_Archetype_grails_app_views_applicat[email protected]239dbdd6] Possible solutions: is(java.lang.Object), run(), run(), any(), use([Ljava.lang.Object;), any(groovy.lang.Closure) 
Caused by: Error processing GroovyPageView: No signature of method: C__projects_Archetype_grails_app_views_application_applicationPortfolio_gsp.$() is applicable for argument types: (C__projects_Archetype_grails_app_views_application_applicationPortfolio_gsp$_run_closure2_closure56_closure144) values: [C__projects_Archetype_grails_app_views_applicat[email protected]239dbdd6] Possible solutions: is(java.lang.Object), run(), run(), any(), use([Ljava.lang.Object;), any(groovy.lang.Closure) 
Class: applicationPortfolio.gsp 
At Line: [631] 

谢谢!

+0

也越来越此错误:不知道为什么它改变了。异常消息:启动失败:C__projects_Archetype_grails_app_views_application_applicationPortfolio_gsp:280:unexpected token:printHtmlPart @ line 280,column 1. printHtmlPart(77)^ 1 error – 2012-07-18 21:31:53

+1

2个变量来自哪里?当整个方法调用已经在一组'$ {}'之间时,我不认为你需要把它们放在'$ {}'之间。试试'$ {Application.findAllWhere((group1):group)}'。也许不需要'group1'周围的'()'。 – Weezle 2012-07-18 21:35:32

+0

与问题无关 - 不要从GSP进行数据库调用。这不是PHP的ffs。 – 2012-07-19 05:40:38

回答

3

尝试简化到:${Application.findAllWhere(group: group)}为Weezle表示

但它通常是更好地把这种控制器,并返回例如:

class MyContoller { 

def myAction() { 
    [appList: Application.findAllWhere(group: group)] 
} 

myAction.gsp 

${appList} 

<g:each var="app" in="${appList}"> 
    ${app.id} - ${app.name} 
</g:each>