Os Grails têm uma maneira legal de copiar propriedades de domínio de uma string de consulta de URL?

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

Pergunta

Eu sei que o Grails possui um construtor baseado em mapa para objetos de domínio, aos quais você pode passar os parâmetros de um URL e ele aplicará as configurações de campo apropriadas ao objeto usando a introspecção, como esta ...

myDomainInstance = new MyObject(params)

Eu queria saber se havia um método equivalente de pegar os parâmetros e aplicá -los a um objeto existente e atualizar valores da mesma maneira que o construtor de mapa deve funcionar, algo como ...

myDomainInstance = params

ou

myDomainInstance = fromParams(params)

Estou apenas pensando em pensar ou isso existe? Eu posso codificar -me, mas preferiria não se já existir.

Obrigado

Foi útil?

Solução

Adaptado do Guia do usuário do Grails:

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

Confira a documentação para 'parâmetros' na seção do controlador para obter mais informações.

Outras dicas

Realmente depende do que você está tentando fazer, mas uma abordagem equivalente a usar o banco de dados.

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

Isso oferece o benefício de usar a ligação personalizada. Se, digamos, o formato da sua data não é o padrão, você pode redefini -lo através de um feijão como este:

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
  public void registerCustomEditors(PropertyEditorRegistry registry) {
      registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
  }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top