生成动态HTML文件

时间:2016-09-18 16:04:21

标签: scala

我是Scala的新手。我有预定义的html文件。我想在HTML文件中插入动态内容。

e.g. 
$for(products in product)
    <div>product.name</div>
    <div>product.description</div> 

此处products是Scala集合。我可以加载html文件并提供动态值(products)。

您能告诉我如何在Scala中执行此操作吗?

1 个答案:

答案 0 :(得分:1)

旋转模板

编译,类型安全,可组合,scala里面的Html标签(类似角js [javscript里面的Html])

Twirl模板使您可以在html中编写scala,它的类型安全,可以编译为函数,也可以组合。

<强> orders.scala.html

@(customer: Customer, orders: List[Order])

<h1>Welcome @customer.name!</h1>

<ul>
@for(order <- orders) {
  <li>@order.title</li>
}
</ul>

没有任何图书馆

Scala对字符串插值有很好的支持,并且还提供了三重引用语法,用于声明带有espace字符的字符串,非常方便。您可以使用这种简单的方法生成动态Html

 case class Product(name: String)

  case class Html(content: String)

  def produceHtml(products: List[Product]): Html = {
    Html {
      products.map { product =>
        s"""
           |<div> ${product.name} </div>
        """.stripMargin
      }.mkString("\n")
    }
  }