2012-09-11 89 views
2

我學習使用版本1.3.7 Grails和我一直運行到下面的語法錯誤沒有明顯的原因:意外的標記:測繪

unexpected token: mapping @ line x, column y. 

一旦被運行,我擺脫它「常規清潔」和「grails乾淨」,但這次它甚至沒有工作。據我所知,我的代碼與我正在使用的書中的例子完全相同,但它一直抱怨「映射」這個詞。

這是我的一個類,其中失敗的例子:

package com.grailsinaction 

class Post { 

    String content 
    Date dateCreated 

    static constraints = { 
     content(blank: false) 
    } 

    static belongsTo = [ user: User ] 

    static mapping { 
     sort dateCreated: "desc" 
    } 

    static hasMany = [ tags: Tag ] 
} 

我缺少什麼?請指教。

回答

3

你錯過了一個等號...的mapping line應閱讀:

static mapping = { 
    sort dateCreated: "desc" 
} 
+0

就是這樣,謝謝!我在一分鐘前才發現。天哪,我覺得自己像個白癡。 Grails的語法對我來說很奇怪。 – Stephan

+1

@Stephan不用擔心。這條groovy基本上將'static'映射變量設置爲Groovy Closure(一種匿名方法)。當執行時,這會調用'sort'方法傳遞一個地圖'[dateCreated:'desc']''。只是讓你知道發生了什麼事情:-)不斷堵塞!像任何語言一樣,它最終會堅持:-) –

+0

謝謝你解釋。從Java/C#開始看,它並不是那麼明顯。 – Stephan