iberck
3/6/2017 - 4:22 AM

Grails command databinding alternativa 3

Grails command databinding alternativa 3

Alternativa 3

Crear un command que contenga las propiedades de todos los paneles en la vista, cada panel estará dentro de un form. Para evitar se pierdan los valores, al hacer submit se llenará el command object con los valores por default del domain class y posteriormente se asignarán los valores que vengan del request.

En esta alternativa el command object deberá definir sus constraints en base al tipo de panel capturado. Al estar toda la información de todos los paneles dentro de un solo command object, habrá que enviar el nombre del panel para que en base a él se pueda determinar qué validaciones se harán dentro de static constraints y cuáles no.

Ventajas:

  • Con un único command object se mapea todos los paneles.

Desventajas:

  • La lógica de los constraints es más engorrosa que si se tuviera 1 command por panel.
  • Rompe con el principio Open/Close porque al agregar un nuevo panel, se debe modificar el command object.