grails - 如何更改我的 View 文件以获得适当的输出?

标签 grails groovy

我有一个像这样的 Controller :

def mytask = {
        def user = User.findByLogin(params.id)
        def mywork = user.schedules.daySchedules
        [ mywork : mywork ]
    }

我在哪里寻找分配给特定user的所有任务。我有一个相应的 View 文件:
<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的所有任务。但是在渲染时存在问题。

我得到的输出为:

但我需要类似以下的输出:

如何更改我的 View 文件以获得适当的输出。

提前致谢。

最佳答案

从您的示例很难看出来,但我的猜测是您需要遍历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的新列表。

关于grails - 如何更改我的 View 文件以获得适当的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8530260/

相关文章:

java - Gradle:获取Groovy测试脚本以使用辅助Java类

scala - Mirah 比 JRuby、Groovy 和 Scala 提供了什么?

java - Java 风格的 Groovy 和 Java 一样快吗?

java - 如何在 Groovy 中使用 java.util.Date 作为映射键

hibernate - 3个实体之间的域关联

Grails - 如何计算任何操作所花费的执行时间?

json - 渲染生成器json无法正确渲染

grails - 在学习 Grails 之前我需要知道什么?

groovy - 如何从构建主体运行自定义gradle任务

Java keystore 加载第一次工作,第二次抛出错误