我使用Groovy的方便MarkupBuilder的建立来自不同源数据的HTML页面。

有一两件事我很努力很好地做的是建立一个HTML表格和不同的样式类应用到第一行和最后一行。这可能是最好用一个例子来说明...

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)
      }
    }
  }   
}

<tbody>部分,我想设置该类的<tr>元件的要因所myList当前项目是否是第一或最后项目不同的东西。

是否有一个很好的Groovy的指明分数的方式来做到这一点,而不诉诸一些手动检查项指标对使用类似eachWithIndex{}列表的大小?

有帮助吗?

解决方案

您可以使用

if(it == myList.first()) {
   // First element
}

if(it == myList.last()) {
   // Last element
}

其他提示

由sbglasius提供答案可能导致不正确的结果,当该列表包含赘余力元件,从而从该列表中的元素可以等于所述最后一个等。

我不知道,如果sbglasius可以使用is()代替==但一个正确的答案可能是:

myList.eachWithIndex{ elt, i ->
  if(i == 0) {
   // First element
  }

  if(i ==  myList.size()-1) {
   // Last element
  }
}

如果(it.after.value!= NULL){   ...... }

Works的地图

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top