2015-05-31 2 views
1

В проекте Grails У меня есть объект команды для проверки представленных форм. Эта команда obj. также имеет пользовательские валидаторы. Данные передаются с помощью jQuery ajax ($ .post).Проверка правильности объекта Grails с помощью Ajax

Мой вопрос: как я могу теперь сопоставить данные, отправляемые с 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» к имени вашего параметра.

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

PS: возможно, вы хотите переименовать комментарий «comment_id» в «комментарий» в своем классе команд. При этом вам нужно будет изменить имя параметра в своем ajax-запросе как «comment.id».

Смежные вопросы