【发布时间】:2011-05-22 22:53:01
【问题描述】:
我有这个控制器:
def participated = {
def user = User.get(1)
def temp = ConferenceUser.findAllByUser(user)
def prizes = Prizes.list()
[temp: temp, prizes: prizes]
//redirect(action: "participated", params: params)
}
还有这个 gsp 视图:
<g:each in="${temp}">
<li>Date: ${it.dateParticipated}, <br>Role: ${it.role}, <br>Acceptence: ${it.accepted}, <br>
<g:link controller="conference" action="participated" params="[temp: it.conference.id]">
Conference: </g:link>${it.conference},<br>
Status: ${it.status}</li><br>
<g:each in="${prizes.findAllByConferenceUser(temp.id)}"> ########
PrizeName: ${it.name}
</g:each>
<br>
</g:each>
我想要做的是,在打印完所有需要的 ConferenceUser 对象后,我需要打印所有使用该 ConferenceUser id 赢得的奖品。 ## 在哪里,这是我的问题。我不知道如何在控制器中执行此操作,因为“temp”给了我所有由用户过滤的会议用户。但我还需要通过会议用户 ID 过滤的所有奖品。所以我传入了控制器 temp(代表所有用户 id = 1 的会议)并且我传递了所有赢得的奖品,以便在第二个“每个”标签中过滤它们。但这种方式行不通,因为就像我现在一样, temp.id 代表多个 id(如错误所示)。请问有什么帮助吗?如何在第一个每个标签中获取当时正在使用的 id?
Error 500: Error evaluating expression [prizes.findAllByConferenceUser(temp.id)] on line [44]: groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.findAllByConferenceUser() is applicable for argument types: (java.util.ArrayList) values: [[50, 51, 52, 53, 54, 55, 57]]
Servlet: grails
URI: /CM/grails/conferenceUser/participated.dispatch
Exception Message: No signature of method: java.util.ArrayList.findAllByConferenceUser() is applicable for argument types: (java.util.ArrayList) values: [[50, 51, 52, 53, 54, 55, 57]]
Caused by: Error evaluating expression [prizes.findAllByConferenceUser(temp.id)] on line [44]: groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.findAllByConferenceUser() is applicable for argument types: (java.util.ArrayList) values: [[50, 51, 52, 53, 54, 55, 57]]
Code Snippet:
【问题讨论】:
标签: grails controllers