如何将列表/ stringbuilder呈现为模板

时间:2014-08-01 20:50:50

标签: java scala playframework playframework-2.0 playframework-2.2

我有一个从JSon文件中检索的对象列表。我试图将它们渲染到index.scala.html来创建一个表,但我无法这样做。帮助

我尝试了@(StringBuilder: mystring)但它没有用。

我想知道在成功(希望)将list / stringbuilder渲染到模板后如何使用它来创建表格?

public static Result index() {
  List<MetaModel> arr = getData();

  StringBuilder myString = new StringBuilder();
  for(MetaModel model : arr)
  {
    myString.append(model.toString());
  }

  return ok(index.render(myString.toString()));
}  

2 个答案:

答案 0 :(得分:1)

我的Java有点生疏,无论如何你在toString()上调用StringBuilder,但在你有@(StringBuilder: mystring)的模板中,这是错误的类型和错误的语法,它应该是@(myString: String)

如果您希望将StringBuilder传递给模板,只需避免调用toString并绑定变量@(mystring: StringBuilder)

对于List,只需将变量绑定到模板@(integers: List[Int])中,然后使用map

<ul>
  @integers.map { someInt => <li>@someInt</li> }
</ul>

或更简单的@for功能:

<ul>
   @for( someInt <- integers) { <li>@someInt</li> }
</ul>

更多信息以及Play documentation for Java上的一些示例。

答案 1 :(得分:0)

首先,要在模板中接收数据,应始终在创建变量后声明数据类型。它应该是 @(myString:StringBuilder)。 其次,您已向模板发送错误的数据类型。您已发送字符串类型的数据,但您正在尝试接收 StringBuilder

类型的数据