【发布时间】:2014-07-21 15:11:04
【问题描述】:
在 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 对于所有列对象都是一致的。控制器将 List[Column] 返回给视图。我尝试使用助手将列表转换为数组:
@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 数组的优点可以用于 List of Lists?效率很重要,因为数组大小约为。 20 列 x 2000 行。还是让控制器显式返回矩阵行而不是尝试在视图中转换它们是更好的方法?
【问题讨论】:
标签: arrays scala scala-collections playframework-2.3 scala-2.11