将Scala值传递给资源
我正在尝试使用Spray来满足基于Scala的web应用程序的路由需求。我想知道如何将Scala val传递给前端资源,例如在HTML文件中使用变量。实现这一目标的适当方式是什么?(如果可能的话) 我当前的路线代码:将Scala值传递给资源,scala,spray,Scala,Spray,我正在尝试使用Spray来满足基于Scala的web应用程序的路由需求。我想知道如何将Scala val传递给前端资源,例如在HTML文件中使用变量。实现这一目标的适当方式是什么?(如果可能的话) 我当前的路线代码: val indexRoute = get { path("") { val name = "hello" getFromResource("views/index.html") } } 我的html: <!DOCTYPE html
val indexRoute =
get {
path("") {
val name = "hello"
getFromResource("views/index.html")
}
}
我的html:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>{name}</h1>
</body>
</html>
{name}
这显然只是在页面上打印出{name}
我知道我可以做一些事情,比如:
val indexRoute = {
get {
path("") {
val name = "hello"
complete {
<html>
<body>
<h1>{name}</h1>
</body>
</html>
}
}
}
}
val indexRoute={
得到{
路径(“”){
val name=“你好”
完整的{
{name}
}
}
}
}
但我希望有一种方法可以将视图与路由逻辑本身分离,并放入它们自己的文件中。这是可行的,还是我需要在路由中定义HTML?您可以根据需要尝试使用
从github页面示例中获取的一个简短示例
@(name: String, age: Int = 42)
<html>
@* This template is a simple html template --- (this text btw. is a comment and is not rendered) *@
<h1>Welcome @name!!</h1>
<p>You are @age years old, @(if(age < 21) <i>shouldn't you be in bed ?!</i> else <i>have a great evening !</i>)</p>
</html>
@(姓名:字符串,年龄:Int=42)
@*此模板是一个简单的html模板---(顺便说一句,此文本是注释,不呈现)*@
欢迎@name!!
你已经@age year,@(如果(年龄<21岁)你不应该躺在床上吗?!否则祝你晚上愉快!)
Spray并不像您现在使用的那样有一个表示层。它通常用于提供RESTAPI。你看过这出戏了吗!框架它有一个模板引擎,可以像你想要的那样工作。+1 for Play framework如果你需要模板引擎来构建UIThanks,我用过Play,希望能有更轻量级的东西。也许喷雾不是正确的决定。谢谢你,我不知道他们已经把它从游戏中拉出来了。它实际上是从喷雾中拉出来的,然后作为一个独立的部件进行维护,可以再次在喷雾中使用。