2010-05-03 53 views
5

好的,我在Grails中創建了一個非常簡單的應用程序。 我有一個產生域類(人)和其產生的控制器,使用自動的Grails腳手架:Grails中視圖的JSON輸出

package contacts 

class PersonController { 

    def scaffold = Person 

} 

現在我想獲得Person對象的JSON表示。

我必須更改視圖或控制器嗎?如何?

謝謝。

回答

9

以下內容添加到您的控制器:

def list = { 
    params.max = Math.min(params.max ? params.int('max') : 10, 100) 
    def personList = Person.list(params) 
    withFormat { 
     html { 
      [personInstanceList: personList, personInstanceTotal: Person.count()] 
     } 
     json { 
      render personList as JSON 
     } 
    } 
} 

這應該支持你的腳手架和JSON輸出。

您可以訪問腳手架爲:

http://localhost:8080/contacts/person/list

您可以訪問的個人列表作爲JSON:

http://localhost:8080/contacts/person/list?format=json

還有其他的方法來做到這一點,但我就像這樣去做腳手架來進行測試。

+0

太好了。謝謝你的精確和全面的答案;) – daliz 2010-05-03 19:52:50

+0

對我來說有點太複雜了:你應該在你的控制器中使用'static responseFormats = [「json」,「html」]'並且保持生成的代碼原樣(比如'response User.list(params)...')。無需編寫代碼來處理格式。恥辱是,我們應該能夠使用腳手架和json而不必生成任何控制器代碼 – 2014-06-26 22:47:30