J'utilise MarkupBuilder de Groovy pour créer une page HTML à partir de diverses données source.Détection du premier et dernier élément à l'intérieur d'une fermeture Groovy each {}
Une chose que j'ai du mal à faire est de construire une table HTML et d'appliquer différentes classes de styles à la première et à la dernière rangée. Ceci est probablement mieux illustré par un exemple ...
table() {
thead() {
tr(){
th('class':'l name', 'name')
th('class':'type', 'type')
th('description')
}
}
tbody() {
// Add a row to the table for each item in myList
myList.each {
tr('class' : '????????') {
td('class':'l name', it.name)
td('class':'type', it.type)
td(it.description)
}
}
}
}
Dans la section <tbody>
, je voudrais définir la classe de l'élément <tr>
être quelque chose de différent selon que l'élément en cours dans myList
est le premier ou le dernier élément.
Existe-t-il un moyen sympa de faire ceci sans recourir à quelque chose de manuel pour vérifier les index des éléments par rapport à la taille de la liste en utilisant quelque chose comme eachWithIndex{}
?
pointe Nice, ne connaissait pas ces méthodes. – xlson
Utile, merci. Comme ci-dessus, n'avait pas vu ces méthodes avant ... – tomtheguvnor
Rappelez-vous, que first() et last() ne fonctionne que sur List, pas Map ou Set (voir http://groovy.codehaus.org/groovy-jdk /) – sbglasius