简体   繁体   English

grails:在gsp中显示数据库中的元素列表

[英]grails: show list of elements from database in gsp

in my grails app I need to get some data from database and show it in a gsp page. 在我的grails应用程序中,我需要从数据库中获取一些数据并在gsp页面中显示它。 I know that I need to get data from controller, for example 我知道我需要从控制器获取数据,例如

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

gets all Event with date today Now, how can I render it in a gsp page?How can I pass that list of Event objects to gsp? 获得今天日期的所有事件现在,我怎么能使其在GSP页面?我如何通过事件对象的清单提交给GSP?

Thanks a lot 非常感谢

You can learn many of the basic concepts using Grails scaffolding. 您可以使用Grails脚手架学习许多基本概念。 Create a new project with a domain and issue command generate-all com.sample.MyDomain it will generate you a controller and a view. 使用域创建一个新项目并发出命令generate-all com.sample.MyDomain它将为您生成一个控制器和一个视图。

To answer your question create a action in a controller like this: 要回答您的问题,请在控制器中创建一个操作,如下所示:

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] 
    } 
}

On your GSP you can loop through the list and print them as you wish 在GSP上,您可以遍历列表并根据需要打印它们

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

Good luck 祝好运

I am not sure if this is really what you meant, because in that case I suggest you to read some more on the grails :), but anyway, for your case you can use render, redirect as well but here I am taking simplest way: 我不确定这是否真的是你的意思,因为在这种情况下我建议你阅读更多关于grails :),但无论如何,对于你的情况你可以使用渲染,重定向但是在这里我采取最简单的方式:

In your controller you have: 在您的控制器中,您有:

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

and then in the GSP(I assume you know about grails conventions, as if you don't specify view name, it will by default render gsp page with the same name as the function in the controller, inside views/): 然后在GSP中(我假设您了解grails约定,就好像您没有指定视图名称一样,它将默认呈现与控制器中的函数同名的gsp页面,在视图内部):

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

something like this. 这样的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM