在我的 grails 应用程序中,我需要从数据库中获取一些数据并将其显示在 gsp 页面中。我知道我需要从控制器获取数据,例如
List<Event> todayEvents = Event.findAllByStartTime(today)
获取今天有日期的所有事件 现在,如何在 gsp 页面中呈现它?如何将该事件对象列表传递给 gsp?
非常感谢
您可以使用 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>
祝你好运
我不确定这是否真的是您的意思,因为在这种情况下,我建议您在 grails 上阅读更多内容:),但无论如何,对于您的情况,您也可以使用渲染、重定向,但在这里我采用最简单的方法:
在您的控制器中,您有:
def getAllElements(){
List<Event> todayEvents = Event.findAllByStartTime(today)
[todayEvents :todayEvents ]
}
然后在 GSP 中(我假设您了解 grails 约定,就好像您没有指定视图名称一样,默认情况下,它会在视图 / 内部呈现与控制器中的函数同名的 gsp 页面):
<g:each in="${todayEvents}" var="eventInstance">
${eventInstance.<propertyName>}
</g:each>
像这样的东西。