我有一个像这样的控制器:
def mytask = {
def user = User.findByLogin(params.id)
def mywork = user.schedules.daySchedules
[ mywork : mywork ]
}
我正在尝试查找分配给特定user
的所有任务。我有一个相应的视图文件:
<g:each in="${mywork}" var="tasks">
<div id = "todayswork">
${tasks.task}
</div>
<div id ="Dates">
${tasks.startTime}-
${tasks.endTime}
</div>
<hr/>
</g:each>
逻辑工作正常,我正在按照我的意愿获得输出。例如,如果我转到http://localhost:8080/scheduleTest/daySchedule/mytask/anto
我的浏览器显示用户anto
的所有任务。但渲染它时存在问题。
我的输出为:
但我需要输出类似这样的输出:
如何更改我的视图文件以获取适当的输出。
提前致谢。
答案 0 :(得分:1)
很难从你的例子中看出来,但我的猜测是你需要循环遍历tasks
项目,该项目似乎是列表中的列表。
这意味着改变这个:
<g:each in="${mywork}" var="tasks">
到这个
<g:each in="${mywork[0]}" var="tasks">
// or
<g:each in="${mywork.tasks}" var="tasks">
同样,我不确定问题出在哪里,但其中一个会解决问题。
您获得输出的原因是,如果未在该列表上定义属性,Groovy将自动在列表上执行属性扩展。例如:
use(org.codehaus.groovy.runtime.TimeCategory) {
def d1 = 5.minutes.ago
def d2 = 1.week.from.now
assert [d1, d2].time == [d1.time, d2.time]
}
与写list*.property
相同,并返回原始项目中包含每个property
的新列表。