3

在我的 grails 应用程序中,我需要从数据库中获取一些数据并将其显示在 gsp 页面中。我知道我需要从控制器获取数据,例如

List<Event> todayEvents = Event.findAllByStartTime(today)

获取今天有日期的所有事件 现在,如何在 gsp 页面中呈现它?如何将该事件对象列表传递给 gsp?

非常感谢

4

2 回答 2

8

您可以使用 Grails 脚手架学习许多基本概念。使用域创建一个新项目并发出命令generate-all com.sample.MyDomain,它将为您生成一个控制器和一个视图。

要回答您的问题,请在控制器中创建一个操作,如下所示:

class EventController {

    //Helpful when controller actions are exposed as REST service.     
    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

    def showEvents() {
        List<Event> todayEvents = Event.findAllByStartTime(today)
        [eventsList:todayEvents] 
    } 
}

在您的 GSP 上,您可以循环浏览列表并根据需要打印它们

<g:each in="${eventsList}" var="p">
 <li>${p}</li>
</g:each>

祝你好运

于 2013-07-02T13:39:21.693 回答
1

我不确定这是否真的是您的意思,因为在这种情况下,我建议您在 grails 上阅读更多内容:),但无论如何,对于您的情况,您也可以使用渲染、重定向,但在这里我采用最简单的方法:

在您的控制器中,您有:

def getAllElements(){
    List<Event> todayEvents = Event.findAllByStartTime(today)
    [todayEvents :todayEvents ]
}

然后在 GSP 中(我假设您了解 grails 约定,就好像您没有指定视图名称一样,默认情况下,它会在视图 / 内部呈现与控制器中的函数同名的 gsp 页面):

<g:each in="${todayEvents}" var="eventInstance">
    ${eventInstance.<propertyName>}
</g:each>

像这样的东西。

于 2013-07-02T13:38:35.223 回答