【问题标题】:How to render a list/stringbuilder to template如何将列表/字符串生成器呈现为模板
【发布时间】:2014-09-25 03:27:10
【问题描述】:

我有一个从 JSON 文件中检索到的对象列表。我正在尝试将它们呈现到 index.scala.html 以创建一个表,但我无法这样做。帮忙?

我尝试了@(StringBuilder: mystring),但没有成功。

我想知道在我成功(希望)将列表/字符串生成器渲染到模板中之后,如何使用它来制作表格?

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

【问题讨论】:

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


    【解决方案1】:

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

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

    对于Lists,只需在模板中绑定变量@(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上。

    【讨论】:

      【解决方案2】:

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

      类型的数据

      【讨论】:

        猜你喜欢
        • 2011-04-28
        • 2018-08-30
        • 2012-06-25
        • 2013-05-23
        • 1970-01-01
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多