如果我们可能只使用template-engine,那么为什么在第2版( scala )中使用scala?
使用模板引擎是:
为什么不直接使用scala提供的核心xml/html支持:http://www.scala-lang.org/node/131
我是否可以在play-framework或单独使用任何纯scala模板(您可以推荐)?
发布于 2013-07-02 12:30:52
对我来说,这是一个答案,至少是最后一个问题。
这就是斯卡拉。只是内置了XML的魔法。
http://www.alvarocarrasco.com/2011/03/play-framework-and-templating-with.html?m=1
示例:
这是一个模板:Templates.scala文件
package templates
import play.api.templates.Html
import scala.xml.Xhtml
import controllers.routes
object Main {
def page (title:String="Default title")(content: => scala.xml.Elem) = Html {
"<!DOCTYPE html>" +
Xhtml.toXhtml(
<html>
<head>
<title>{title}</title>
<link rel="stylesheet" media="screen" href={routes.Assets.at("stylesheets/main.css").toString()} />
<link rel="shortcut icon" type="image/png" href={routes.Assets.at("images/favicon.png").toString()} />
<script src={routes.Assets.at("javascripts/jquery-1.9.0.min.js").toString()} type="text/javascript" />
</head>
<body>
{content}
</body>
</html>
)
}
// a panel template, just as an example
def panel (label:String="Some label")(content: => scala.xml.Elem) = {
<div class="panel">
<div class="panel-label">{label}</div>
<div>{content}</div>
</div>
}
}这是一个索引页 index.scala文件
package views
import templates.Main._
object IndexPage {
def apply() = {
page(title="Welcome to my Page!") {
<div>
<h1>Hello</h1>
<p>Some template markup</p>
{
panel(label="Dashboard panel")(
<div>
Panel content
</div>
)
}
</div>
}
}
}这是一个控制器: Application.scala文件
package controllers
import play.api.mvc._
object Application extends Controller {
def index = Action {
Ok(
views.IndexPage()
);
}
}发布于 2013-06-29 07:11:42
实际上,您应该向开发团队提出这个问题,但是请考虑以下几点:
Ok()方法轻松地返回任何字符串,因此根据您的链接,您可以执行类似于Ok(theDate("John Doe").toString())的操作MVC web框架非常典型,其中视图是基于HTML的文件,因为.这是一个网络专用的框架。我看不出这一点有什么问题,有时我正在使用其他语言/框架,并且可以看到它们之间的差异只是一个特定于语言的语法,这就是目标!在回答您的最后一个问题时,AFAIK正式将提供Groovy引擎作为一个模块,它提供了从Play 1.x已知的模板引擎,但是请记住,它只是为从Play 1.x迁移到Play 2.x的人提供了一座桥梁,因为它比Play 2的本地引擎要慢。
https://stackoverflow.com/questions/17375776
复制相似问题