Playframework 2.0 Play框架中的模板语法系统引用

Playframework 2.0 Play框架中的模板语法系统引用,playframework-2.0,Playframework 2.0,我正在用这个剧本做我的第一个项目!框架,并将阅读Manning的“Play for Java”一书的第一章 在第1.5节中,我们在apps/views中构建了第一个模板,名为hello.scala.html @(name:String) <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Hello</title>

我正在用这个剧本做我的第一个项目!框架,并将阅读Manning的“Play for Java”一书的第一章

在第1.5节中,我们在apps/views中构建了第一个模板,名为hello.scala.html

@(name:String)
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Hello</title>
    </head>
    <body>
        <h1>Hello @name</h1>
    </body>
</html>
我对Java还不是非常熟悉,我正试图逐字解释第三行的意思

  • Return ok-->返回HTTP ok代码,目前为止效果良好

  • 视图-->这是否意味着要查看app/views文件夹?或者它是存储在其他地方的视图路径的引用

  • .html-->这是数据类型吗?文件名?文件扩展名?如果取而代之的是名为hello.scala.htm的模板,这会发生变化吗

  • .hello-->这是否引用文件的标题:hello.scala.html

  • .render-->是否所有模板都使用此方法

  • (名称)-->我假设这是引用hello.scala.html第一行中的参数

  • @(name:String)
    <!doctype html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Hello</title>
        </head>
        <body>
            <h1>Hello @name</h1>
        </body>
    </html>
    

理解Play template引擎如何工作的关键是认识到每个视图都编译成Scala对象。你没有写你正在使用的剧本的版本。在2.3中,您可以在target/Scala-{version}/twirl目录中查看生成的Scala源

视图-->这是否意味着要查看app/views文件夹?或者它是一个 存储在其他位置的视图路径的参考

views.html只是一个放置对象的包。如果您的hello.scala.html文件位于views目录中,Play会自动生成目录views.html,并将编译为对象的模板放入其中。html包是根据模板的扩展生成的。所有扩展名为*.html的模板都将放在此包下。对于其他扩展,将生成不同的包

请注意,如果在views/subdir/hello.scala.html中创建视图,则生成的包结构将类似于views.html.subdir

.html-->这是数据类型吗?文件名?文件扩展名?如果 模板名为hello.scala.htm,但这会改变吗

如上所述,它用于生成一个包。根据唯一的html,js、xml或txt是有效的扩展

.hello-->这是否引用了文件的标题: 您好,scala.html

在本例中,hello是从视图生成的对象的名称

.render-->是否所有模板都使用此方法

从视图源文件生成的每个对象都扩展了play.twirl.api.Template1,其中放置了render()的声明

(名称)-->我假设这是引用 hello.scala.html的第一行

@(name:String)
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Hello</title>
    </head>
    <body>
        <h1>Hello @name</h1>
    </body>
</html>
是的,你说得对

此外,您还介绍了您对Java的熟悉程度。显然,掌握模板引擎的所有细节还需要对Scala有一点了解。好消息是,你不必知道它的一切,就可以正确地使用它