6

我刚刚开始尝试使用 play 框架,并尝试了解您在创建新项目时获得的这个默认应用程序。

Application.index()据我了解,在加载 localhost 页面时,由于路由文件中的规范,一个 http get 请求进入并被定向到该方法?在该index()方法中,会生成大量 HTML 代码并在 Result 对象中返回并传递给文件,该index.scala.html文件将其交给main.scala.html被更多 html 包围的地方。

现在,我不清楚一些事情:

  • Application.java里面有这条线return ok(index.render("Hello World!")); 索引属于views.html.*;但是这个包裹在哪里?我在 API 中找不到它:(

  • 为什么我不能重命名index.scala.html文件?这个名字是约定俗成的吗?

  • index.scala.html文件本身中:@play20.welcome(message, style = "Java")做什么?这是在获得“欢迎玩 2.0”网站吗?再一次 - 我找不到 play20 的文档/API 条目:(

我希望有人能帮我大致了解一下,因为我现在真的很困惑..^^我做了很多java,但根本没有网络编程,因此所有不同技术和语言的混合是此刻很奇怪!

4

1 回答 1

6

TodoList 示例中,站点根目录GET /映射到方法Application.index(),因此该方法创建您所看到的 html。

控制器所做的一切都发生在这一行:return ok(index.render("Hello World!"));. 基本上它会调用一些生成 html 并返回输出的模板。

  • return ok( ... )用于表示请求成功,返回码200。
  • index.render( ... )返回名为index. 这里使用的包是views.html.*,但它实际上是指views/index.scala.html. 所以该index部分没有约定,您可以根据需要重命名该部分。模板需要先编译,然后才能像 Java 类一样使用,这就是包名称不同的原因。框架会处理这个问题。
  • "Hello World!"是参数,在第一行指定为消息参数index.scala.html
  • @play20.welcome( ... )只需调用另一个模板,即框架中包含的欢迎页面。这不是要更改的主题 - 它只是静态页面,从视图中删除该行后,您可以放置​​任何您想要的 HTML。
于 2012-10-11T12:10:04.160 回答