2012-06-28 4 views
0

Je suis nouveau sur la plateforme Grails et je me suis intéressé au composant TagLib. J'ai cette application dans laquelle je dois créer une sélection de temps [sélection de format 24 heures] faite de deux tag <select>: heure et heure. Jusqu'à présent, j'ai codé ma théorie de cette manière.Grails Taglib G: SELECT

def timePicker = { attrs -> 
    out << "<g:select name='" + attrs['name'] + ".hour' from='${00..21}' />" 
    out << "<g:select name='" + attrs['name'] + ".minute' from='${00..59}' />" 
} 

Cependant, je ne peux pas afficher dans la page mais il afficher le contenu de out dans la page web lui-même qui est faux. Comment puis-je avoir deux affichages <select> correctement sur le .gsp par TagLib? Est-ce que je vais l'écrire dans le <select> conventionnel accompagné des instructions <option>, ou vais-je utiliser la syntaxe g.select(attrs)?

Merci

Répondre

2

vous pouvez utiliser quelque chose comme ceci:

def timePicker = { attrs -> 
    def hours = 0..21 
    def stringHours = hours.collect{ String.format('%02d', it) } 

    def minutes = 0..59 
    def stringMinutes = minutes.collect{ String.format('%02d', it) } 

    out << "${select(from: stringHours, name: attrs.name + '.hour')}" 
    out << "${select(from: stringMinutes, name: attrs.name + '.minute')}" 
} 
1

Vous pouvez utiliser un appel de méthode dans GSP seulement:

def timePicker = { attrs -> 
    out << "${select(from: 00..21, name: attrs.name + '.hour')}" 
    out << "${select(from: 00..59, name: attrs.name + '.minute')}" 
} 
+0

Merci. Mais existe-t-il un moyen de formater un seul chiffre [0-9] pour le mettre en format à deux chiffres '0 \ d'? Merci. –