Командный объект 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 = [:]
}
Свойства с именами "имя", "дилер", "дилер.имя" и "дилер.дилер" будут правильно связаны с объектом команды.