2013-07-02 33 views
2

我需要從數據庫獲取一些數據並將其顯示在gsp頁面中。 我知道,我需要從控制器的數據,例如grails:在gsp中顯示數據庫元素列表

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

得到與日期今天 所有的事件現在,我怎麼能使其在GSP頁面?我如何通過事件的該列表對象gsp?

非常感謝

+2

正確地說@JamesKleeh。節省時間[這裏](http://grails.org/doc/latest/)可以節省時間來撰寫問題。 :-) – dmahapatro

+0

如果你看一下Grails文檔,你會發現它真的解釋如何做到這一點非常簡單。 – user1023110

回答

7

您可以使用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> 

好運

+2

我認爲您的示例中缺少對控制器事件的​​調用...如何在該gsp中調用showEvents? – FrancescoDS

+0

這假設您在名爲event的目錄中有一個名爲showEvents.gsp的gsp。按照慣例Grails將顯示每個操作的相應視圖。 – Alidad

+0

用腳手架試試一個新的grails應用程序,這會點亮許多混亂。 – Alidad

1

我不知道,如果這真的是你的意思,因爲在這種情況下,我建議你多讀一些關於Grails的:),但無論如何,你的情況下,你可以使用render ,重定向,以及,但在這裏我以最簡單的方法:

在你的控制器,你有:

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

,然後在GSP(我假設你知道Grails的約定,因爲如果你不指定視圖名稱,它將默認呈現與功能同名的gsp頁面在控制器中,內部視圖/):

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

這樣的事情。