2009-06-19 16 views
15

Estoy tratando de usar la llamada taglib hay parámetros de atributos, pero también las cosas dentro de la etiqueta misma que utiliza el enlace taglib. No puedo encontrar el atributo para pasar a una llamada g.link() para que represente el texto del enlace. Ya probé 'body' y 'link' y 'text' y 'linkText'; ninguno de esos funciona.Grails link taglib use fuera de GSP

estoy esperando a ser capaz de llamar a

g.link(action:"foo", controller:"bar", _____:"text of the link here")

pero no sé qué poner en _____

Respuesta

4

No existe ningún parámetro para pasar en (para bien o para mal).

Para obtener el texto en el enlace, lo pasa como un cierre.

g.link(action:"foo", controller:"bar") { "text of the link here" }
25

Por lo general, lo hacen así:

g.link(action:"foo", controller:"bar", "text of the link here") 

El enlace de texto no tiene por qué ser el último parámetro, que puede aparecer en cualquier lugar:

g.link("text of the link here", action:"foo", controller:"bar") 

.

uso con cierre:

En lugar de la cadena que puede utilizar un cierre que devuelve una cadena:

g.link(action:"foo", controller:"bar", {"text of the link here"}) 

Y, como con cualquier cierre maravilloso que es el último parámetro para una llamada a un método, se puede poner después del paréntesis de cierre:

g.link(action:"foo", controller:"bar") {"text of the link here"} 
+1

Los documentos no hacen referencia a esto en absoluto, pero muestran un cierre. Es probable que los documentos necesiten una actualización. – user111544

+1

Actualicé la respuesta para explicar eso. – Zim

0

en aras de la exhaustividad, ya que no es mencionado en la documentación: si está llamando a las etiquetas (como las llamadas metód) dentro de su propio taglib, puede usar el cierre para generar cualquier otro contenido (usando out <<) dentro de la etiqueta externa. Por ejemplo:

out << g.form(method: "post", controller: "login") { 
    out << "Name: " << g.textField(name: "name") << "<br>" 
    out << "Password: " << g.passwordField(name: "password") << "<br>" 
    out << g.submitButton(name: "login") 
} 
Cuestiones relacionadas