当我输出一个属性时,我想我得到了闭包的引用/指针而不是预期的返回值。
例如,对于以下属性:${g.goalsAgainstAverage}
:
<td header="stathdr5 stathdr${g.leagueId} stathdrgt${g.leagueId}_${g.gameTypeId}">${g.goalsAgainstAverage}</td>
将输出:
<td header="stathdr5 stathdr1 stathdrgt1_3">com.mgs.StatService$__tt__getSeasonStats_closure10$_closure24$_closure25@61df269d</td>
以下是生成值的服务(请参阅calcGoalsAgainstAverage
):
import grails.transaction.Transactional
@Transactional
class StatService {
def serviceMethod() {
}
def getSeasonStats(Long userId, Long seasonId){
def seasonRaw = Game.createCriteria().list{
...
}
def seasonStats = seasonRaw
.groupBy { it.leagueId }
.collect { leagueId, records ->
[
...
gameTypes: records.collect {
[
...
goalsAgainstAverage: {calcGoalsAgainstAverage(it.secondsPlayed, it.minutesPlayed, it.gameInMinutes, it.goalsAgainst)}
]
}
]
}
return seasonStats
}
double calcGoalsAgainstAverage(int secondsPlayed, int minutesPlayed, int gameInMinutes, int goalsAgainst){
...
}
}
答案 0 :(得分:4)
你回来了......
要么改变:
goalsAgainstAverage: {calcGoalsAgainstAverage(it.secondsPlayed, it.minutesPlayed, it.gameInMinutes, it.goalsAgainst)}
要
goalsAgainstAverage: calcGoalsAgainstAverage(it.secondsPlayed, it.minutesPlayed, it.gameInMinutes, it.goalsAgainst)
或者,改变
${g.goalsAgainstAverage}
要
${g.goalsAgainstAverage()}