problema con griffon

Hola q tal comunidad estoy teniendo un problema algo extraño con griffon y trata en que no puedo enviar argumentos a los closures del controller desde la vista lo intente desde un actionperformed y tambien desde las actions que maneja este marco , sin embargo si funcionan sin tener argumentos , en los closures hago pruebas con un println it y obtengo null , por el momento tengo que recurrir a la referencia view.dato dentro del closure del controlador.
- es decir (controller.miclosure ) funciona.
- y controller.miclosure('cadena') funciona pero con un println it dentro del closure imprime null.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

Postea tu código

Así alguien te podría ayudar.

Imagen de julgo

no adjunte el codigo por que

no adjunte el codigo por que el problema lo escribi asumiendo que era tan literal que no era necesario pero aqui va el codigo y un poco mas de explicacion .
en la groovyConsole pruebo esto y me funciona
 
-por cierto tambien digamos de cierta forma "descubri" que si no enviamos argumentos al closure no es necesario las llaves {...} ni los parentesis(..) , pero en el ejemplo sin las llaves provocaria un error;
pero esto no es mi problema , el problema es como lograrlo en griffon donde invocar los closures sin argumentos me resulta valido ,pero el ejemplo anterior no.
- este es el codigo en griffon
// la vista view
 
y el codigo del controlador
 
el resultado de los eventos imprime null.
-encontre una solucion justo cuando escribia este post y lo hize a traves de un metodo y no un closure , incluso en el libro griffon in action en sus ejemplos utilizan closures no entiendo por que pasa esto pero aqui va la solucion
 
codigo del controlador
 

Imagen de Sr. Negativo

Tal vez esto te sirva

Imagen de ezamudio

closures vs métodos

La diferencia entre closures y métodos es que los closures pueden ser invocados con cualquier cantidad de argumentos mientras que la invocación a un método debe incluir tantos argumentos como parámetros tenga definido dicho método.

En cuanto a que no sea necesario incluir llaves si no incluyes parámetros: creo que estás un poco confundido en algunos conceptos. En tu primer ejemplo:

 

lo que estás haciendo es pasar a   un closure dentro del cual invocas a controller.imprime.

Si le quitas las llaves:

 

Entonces estás pasando una referencia al closure   del objeto   y ese closure se ejecutará cuando oprimas el botón, y recibirá los dos argumentos correspondientes a los parámetros de  .

Imagen de julgo

si de acuerdo

-entiendo la diferencia entre los closures y metodos , aunque en cierto sentido un metodo podria recibir argumentos variables ,a pesar que no seria del todo exacto llamarlo asi, simularia esta caracteristica de los closures en la forma de invocarlos ; mas en el metodo mismo los argumentos son recibidos dentro de un array , en realidad el compilador nos ahorra el trabajo de crear el array con el tamaño de los argumentos en cada llamada por ejemplo :

 
-

si olvide la referencia es por eso que
  provocaria un error a pesar de invocarlo sin parametros si es que no retorna un closure.

- en cuanto a griffon sigo sin entender por que no se comporta como en el primer ejemplo que publique ya que la vista tiene referencias tanto del controlador como del modelo.
-tampoco entendi la ultima parte de recibir los dos argumentos correspondientes a los parametros , supongo que por la prisa tal ves ya que mencionabas el closure dentro del actionPerformed =  

Imagen de ezamudio

versiones

Qué versión de Griffon usan en el libro y cuál estás usando tú? si es una más reciente, lee las notas de esa versión para ver qué cosas cambiaron.

Imagen de julgo

si pensé en las versiones

si pensé en las versiones pero es una característica tan básica que no crei que variara de versión en versión , será que estoy usando Windows jejeje , recuerdo que probe con dos versiones de griffon, me recuerda un problema que tuve con el apache derby que se instala junto a netbeans, por mas que configuraba firewall , variables de entorno, conexiones directas sin uso de netbeans, etc .y probaba no podía conectarme pero luego de eliminar por completo tanto netbeans como el jdk y volver instalarlo funcionaba perfecto, por ahora vere otros proyectos , de todas maneras mas adelante comenzare de cero y comentare que tal me fue.