0

私は2つの変数を渡すgrails gspでfindAllWhereを実行しようとしています.1つは属性であり、もう1つはその属性を等しくしたい値です。IE (作成者: Mark Twain) 構文がわかりません。受信したエラーは役に立ちません。

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

Group1 はコントローラから渡される変数であり、group は ag: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_application_applicationPortfolio_gsp$_run_closure2_closure56_closure144@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_application_applicationPortfolio_gsp$_run_closure2_closure56_closure144@239dbdd6] Possible solutions: is(java.lang.Object), run(), run(), any(), use([Ljava.lang.Object;), any(groovy.lang.Closure) 
Class: applicationPortfolio.gsp 
At Line: [631] 

ありがとう!

4

1 に答える 1

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>
于 2012-07-18T23:03:04.570 に答える