2015-05-31 80 views
1

在Grails項目中,我有一個命令對象來驗證提交的表單。這個命令obj。也有自定義驗證器。數據使用jQuery ajax($ .post)提交。使用Ajax實現Grails命令對象驗證

我的問題是我怎麼現在可以將數據發送與jQuery Ajax映射到Command對象中列出的屬性?

例如:

$.post('comment/save', {id: id, title: title}); 

,然後在控制器:

def save(saveCommand cmd){ 

    if (!cmd.validate()){ 
    ... 
    } 
} 

class saveCommand { 

    Comment comment_id // maps to: params.comment_id send with ajax 
    String title   // maps to: params.title send with ajax 

    // constraints 
    // validators  
} 

回答

2

的COMMENT_ID屬性應該從一個「COMMENT_ID」參數在從jQuery的發送的參數映射,而不是作爲約束「id」就像你現在所擁有的一樣。

無論如何,我想你有一個評論域類,你期望從數據庫綁定這個實體。在這種情況下,您應該爲參數名稱添加一個「.id」後綴。 PS:也許你想在命令類中將「comment_id」重命名爲「註釋」。這樣做,您將不得不將您的ajax請求中的參數名稱更改爲「comment.id」。