Secciones

Artículos para tus primeros pasos

Si estás empezando a introducirte en el mundo de Groovy y Grails, no te pierdas nuestros artículos básicos: 

Entrevistas con los expertos
 

Los protagonistas te cuentan de qué van los proyectos más importantes del mundo Groovy:


Un proyecto de:
ImaginaWorks
Campus Escuela de Groovy

Grails

Crear taglib en grails

Henry Stivens - sábado 13/12/2008

Hola!

Estoy creando un taglib para ingresar la direccion de un lugar:

class DireccionTagLib {
def direccion = {attrs ->
   
def html = ""
   
def refList = [
        C
:"C",//Calle
        K
:"K",//Carrera
        D
:"D",//Diagonal
        T
:"T",//Transversal
        SD
:"SD"//Sin dato
   
];

   
def name = attrs['name']
   
def id = attrs['id'] ? attrs['id'] : name
   
def value = attrs['value'] ? attrs['value'] : ''


   
def dir0 = ''
   
def dir1 = ''
   
def dir2 = ''
   
def dir3 = ''

   
out << "<input type=\"hidden\" name=\"${name}\" value=\"struct\" />"

    html
+= "<select name='${name}_0' id='${id}_0' >"
    html
+=  "<option value=''>- Seleccione -</option>"

    refList
.each {
        html
+= "<option value='${it.key}'"
       
if(dir0 == it.key) {
            html
+= " selected='selected'"
       
}
        html
+= ">${it.value}</option>"
   
}
    html
+= "</select> "

    html
+= "<input type='text' name='${name}_1' id='${id}_1' size='6' maxlength='5' value='${dir1}' /> "
    html
+= "#"
    html
+= "<input type='text' name='${name}_2' id='${id}_2' size='6' maxlength='5' value='${dir2}' /> "
    html
+= "-"
    html
+= " <input type='text' name='${name}_3' id='${id}_3' size='6' maxlength='5' value='${dir3}' /> "

   
out << html

   
//out << "<input type=\"hidden\" name=\"${name}\" value=\"struct\" />"
   
//out << html
}
}
 

Pero el problema es que el atributo value simpre viene con valor null así haya seleccionado un elemento de la lista y escrito en los tres campos.

Y este es el código que utlizo en el .gsp:

 

<g:direccion name="denunciante.direccionDeResidencia" id="denunciante.direccionDeResidencia" value="${vif?.denunciante?.direccionDeResidencia}"></g:direccion>
 
¿Qué me hace falta hacer?
 
En este post en debugmodeon creando un taglib en grails se ve mejor el código.

 

 

 

Responder al hilo | Volver al foro "Grails" | Volver a los foros