2012-07-18 75 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>