我是Scala的新手。我有预定义的html文件。我想在HTML文件中插入动态内容。
e.g.
$for(products in product)
<div>product.name</div>
<div>product.description</div>
此处products
是Scala集合。我可以加载html文件并提供动态值(products
)。
您能告诉我如何在Scala中执行此操作吗?
答案 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")
}
}