Есть ли у Грааля аккуратный способ копирования доменных свойств из строки запроса URL?

StackOverflow https://stackoverflow.com/questions/2103149

Вопрос

Я знаю, что Grails имеет конструктор на основе карты для объектов домена, к которому вы можете передать параметры URL, и он применит соответствующие настройки поля к объекту, используя самоанализ, как это ...

myDomainInstance = new MyObject(params)

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

myDomainInstance = params

или же

myDomainInstance = fromParams(params)

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

Спасибо

Это было полезно?

Решение

Адаптировано из Руководство пользователя Грааля:

obj = MyObject.get(1)
obj.properties = params

Ознакомьтесь с документацией для «Params» в разделе Controller для получения дополнительной информации.

Другие советы

Это действительно зависит от того, что вы пытаетесь сделать, но эквивалентный подход Используйте DataBinding.

def sc = new SaveCommand()
bindData(sc, params)

Это дает вам преимущество использования пользовательской привязки. Если скажем, ваш формат даты не по умолчанию, вы можете переопределить его через боб, как это:

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
  public void registerCustomEditors(PropertyEditorRegistry registry) {
      registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
  }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top