Каков «лучший» способ отрисовки списка объектов модели (матрицы) в шаблоне Scala, например:
public class Column extends Model {
public String columnLabel;
@OneToMany
public List cells;
}
public class Cell extends Model {
public String rowLabel; //index
public BigDecimal value;
}
Ради этого вопроса Cells.size() и rowLabel согласованы для всех объектов столбца. Контроллер возвращает список [столбец] в представление. Я попытался преобразовать список в массив с помощью помощника:
@matrix(list: List[Column]):Array = @{
var rowCount = list.head.values.size()
var colCount = list.size()
var m = Array.ofDim[String](rowCount,colCount)
for (i <- 0 to rowCount-1) {
for ( j <- 0 to colCount-1) {
matrix(i)(j) = list(j).cells(i).value.toString();
}
}
return m;
}
а затем в представлении:
<div>
@for(i <- 1 to currentPage.getList.head.values.size()) {
<div class="row">
@for(j <- 1 to currentPage.getList.size()) {
<div class="col-md-1">@matrix(currentPage.getList)(i)(j)</div>
}
</div>
}
</div>
но, конечно, это только извлечение значений матрицы, а не меток столбца или строки.
Есть ли какие-то преимущества массива Scala, которые можно использовать в списке списков? Эффективность важна, так как размер массива будет прибл. 20 столбцов х 2000 строк. Или лучше, чтобы контроллер явно возвращал строки матрицы, а не пытался преобразовать их в представлении?