如何在HTML中嵌入Scala?

时间:2013-08-15 19:12:17

标签: php html5 scala

来自PHP的背景,我习惯于我可以简单地将服务器端脚本嵌入到我的HTML页面中。在线搜索,除了使用像Lift这样的Web框架之外,我还没有在Scala中找到一个简单的echo <h1>Hello World</h1>;等价物。我可以用Scala做到这一点吗?

3 个答案:

答案 0 :(得分:4)

请参阅ScalatePlayFramework

Scalate Scaml非常接近你想要的

enter image description here

Scalate支持以下模板格式

  • Mustache这是一个使用Mustache的Scala方言,用于无逻辑模板,也可以使用mustache.js在浏览器中工作。
  • Scaml这是Haml的Scala方言,非常干,用于生成HTML / XHTML
  • Jade这是用于HTML / XHTML标记生成的更加干燥的Scaml方言
  • SSP,就像来自Rails的Velocity,JSP或Erb

答案 1 :(得分:3)

PHP是一种设计用于嵌入HTML页面的语言的例外。 Apache有mod_php为您执行此操作。与许多其他语言一样,Scala要求您启动Web服务器以响应请求并呈现HTML。您可以使用Lift或Play等框架,也可以创建基于Servlet的应用程序并将其部署到任何Servlet容器中。

可以设置一个Apache服务器来运行CGI脚本,然后插入一个由scala命令运行的.scala文件 - 但它会非常慢每次启动Java VM。我不建议除了搔痒之外的其他任何事情。

答案 2 :(得分:0)

以下是使用 SSP 生成 HTML 模板的方法。

定义模板将访问数据的对象。

object FunStuff {
  val dinnertime = "eating stuff!"
}

创建模板:

<% import mrpowers.scalate.example.FunStuff  %>
<p>
    My message is "<%= List("hi", "there", "reader!").mkString(" ") %>"
    At dinnertime, I like <%= FunStuff.dinnertime %>
</p>

渲染模板:

val sourceDataPath = new java.io.File("./src/test/resources/simple_example.ssp").getCanonicalPath
val engine = new TemplateEngine
println(engine.layout(sourceDataPath))

结果如下:

<p>
    My message is "hi there reader!"
    At dinnertime, I like eating stuff!
</p>