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.

 

 

 

Re: Crear taglib en grails

idecasso - martes 16/12/2008

Ya checasteque vif y denunciante no sean null?

vif?.denunciante?.direccionDeResidencia
por vif?.denunciante solo se encarga de que vif no sea null antes de llamar denunciante, en caso contrario devuelve null 
lo mismo en vif?.denunciante?.direccionDeResidencia, revisa que denunciante no sea null
y por que usas vif ??? si puedes usar directamente denunciante? tal vez ahi empiece el problema 

 

Re: Crear taglib en grails

Henry Stivens - martes 16/12/2008

Primero que todo ofrezco disculpa por el multipost pero al pulsar enviar, me mostraba que no  se habia enviando, que lo intentara mas tarde.

Si esta verificado... y se puede comprobar con los otros campos, por ejemplo las fechas ya aparecen seleccionadas, o de las listas los items selccionados y lo mas sencillo como los campos de texto también estan escritos.

Re: Crear taglib en grails

idecasso - martes 16/12/2008
Por que no pruebas cambiandole el nombre al atributo value, no se, ponle denunciante u otra, como valor, tal vez no se puede usar value, de hecho en ninguno de los ejemplos de la documentacion de grails usan value como un atributo en un taglib.

Re: Crear taglib en grails

idecasso - martes 16/12/2008
checando vi que en la definicion de la clausuara pones def direccion = {attrs ->
no habia visto que alguien no pusiera el body, no se si se pueda omitir
def direccion = {attrs, body ->

tambien podrias probar con eso

Re: Crear taglib en grails

Henry Stivens - jueves 18/12/2008

Hola,

Yo seguí el codigo de: 

 http://grails.org/doc/1.0.x/ref/Tags/datePicker.html

 

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