生成动态HTML文件

问题描述:

我是斯卡拉新手。我有预定义的HTML文件。我想在HTML文件中插入动态内容。生成动态HTML文件

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

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

你能否告诉我如何在Scala中做到这一点?

捻模板

编译,类型安全,可组合,斯卡拉HTML标签内(类似于角JS [嵌入HTML javscript])

Twirl模板,让你写一个HTML中阶,其类型安全,被编译为函数并且可组合。

orders.scala.html

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

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

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

没有任何库

Scala有字符串插值很好的支持,并且还提供三重引号语法来声明与协商字符,这是非常方便的字符串。你可以用这种简单的方法

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") 
    } 
    } 
+0

感谢提供两种选择产生动态HTML。 –