I am using Groovy's handy MarkupBuilder to build an HTML page from various source data.
One thing I am struggling to do nicely is build an HTML table and apply different style classes to the first and last rows. This is probably best illustrated with an example...
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) } } } }
In the <tbody>
section, I would like to set the class of the <tr>
element to be something different depending whether the current item in myList
is the first or the last item.
Is there a nice Groovy-ified way to do this without resorting to something manual to check item indexes against the list size using something like eachWithIndex{}
?
You could use
if(it == myList.first()) { // First element } if(it == myList.last()) { // Last element }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With