Командный объект grails и поля с префиксами



Я использую Grails 1.3.7 и вот случай...
Имейте огромную форму с несколькими различными префиксами для своих полей (позже использовавшимися в привязке данных) и пытаясь проверить через командный объект... однако прекрасный DOT, используемый в префиксах, доставляет мне трудности и не может правильно отобразить имена в объекте команды... любое предложение, пожалуйста?

в форме есть такие поля, как поле:

<input name="dealer.name" value="${dealer.name}" type="text"> 

и для командного объекта:

class somethingCommand {
    String name
    Map dealer = [:]
    static constraints = {
        dealer validator: {
            val, obj ->
            obj.properties["name"] != ""
        }
    }
}

что если.... мы смотрим на это по-другому и сопоставляем параметры перед передачей объекту команды... как я должен передать свои параметры объекту команды, не используя магию grails?!?!?!

Тпх

2 ответа

Решение

Вы можете получить карту "дилера" в контроллере через

def dealerMap = params["dealer"]

а затем вручную создайте команду opject для дилера и привяжите к ней содержимое карты.

def dealerCommand = new DealerCommand() 
bindData(dealerCommand , dealerMap)

Затем вы можете использовать проверку объекта команды как обычно

Поддерживаются свойства привязки данных с префиксами к объектам команд:

Для команды:

class DealerCommand {
    String name
    Map dealer = [:]
}

Свойства с именами "имя", "дилер", "дилер.имя" и "дилер.дилер" будут правильно связаны с объектом команды.

http://grails.org/doc/2.3.x/guide/single.html

Другие вопросы по тегам