我需要从正在播放的html代码中访问Java列表。
我的列表是通过公共静态方法返回的:

ComboboxOpts.getListOfValues()


我在Scala代码中多次使用此方法,希望将其分配给某个变量。也许与此类似

@mylist = ComboboxOpts.getListOfValues()


这样我就可以这样使用

@for(i <- 0 to mylist.size -1){
    //Do stuff
}


而不是这个

@for(i <- 0 to ComboboxOpts.getListOfValues.size -1){
    //Do stuff
}

最佳答案

您可以使用defining()设置新变量,例如:

@defining(getName() + " " + getType()) { text =>
  Hello @text!
}


但是,对于您的情况,您可以如下遍历一个列表:

@for(value <- ComboboxOpts.getListOfValues()) {
  <li>@value</li>
}


这不会重复调用您的函数,并且更具表现力。 Play文档包含几个相关示例:http://www.playframework.org/documentation/2.0/JavaTemplates

如果您绝对也需要索引,请尝试使用Scala的zipWithIndex()

09-25 21:39