在play 2框架中创建scala.html文件

时间:2012-08-28 21:41:30

标签: java html5 playframework playframework-2.0

希望现在能更好地解释我的问题,我正在使用java的play 2框架来开发一个带有html5 canvas的草绘系统。

前端将由3个不同的视图(页面)组成。一个用于渲染html5画布,一个用于渲染提交表单和显示标签。第三页作为管理员页面。 想要创建这些视图,并能够从一个渲染的视图或页面导航到另一个。

很抱歉,如果这是一个基本问题,而是一种新的游戏框架。

对我的任何建议。

我知道@helper标签已被使用,但似乎不知道如何去做。

谢谢。

1 个答案:

答案 0 :(得分:5)

您不需要使用@helper@tags将模板包含在其他模板中,只需使用常见渲染,首先创建文件:

  • 应用程序/视图/ canvas.scala.html
  • 应用程序/视图/ edit.scala.html
  • 应用程序/视图/ admin.scala.html

然后在你的Appliaction控制器中创建代表每个视图的三个动作

public static Result canvas(){
    return(views.html.canvas.render());    
}

public static Result canvas(){
    return(views.html.edit.render());    
}

public static Result canvas(){
    return(views.html.admin.render());    
}

对于每个操作,您还需要在route中创建conf/routes,以便将给定网址“翻译”为正确的操作(首先是默认操作):

GET   /             controllers.Application.canvas()
GET   /edit         controllers.Application.edit()
GET   /admin        controllers.Application.admin()

最后在每个视图中添加该块,以便在每个页面上显示“主菜单”。注意:使用reverseRouting作为href链接以确保它们始终正确 - 即使您在路由中更改某些内容(事实上,在这里您可以使用@tags将此块从一个文件包含到多个视图中,但是现在手动放置):

<div class="main-nav">
    <a href='@routes.Application.canvas()'>Canvas page</a>
    <a href='@routes.Application.edit()'>Edit form</a>
    <a href='@routes.Application.admin()'>Admin area</a>
</div>

您现在有3个操作的基本应用程序示例,每个操作都有单独的view

最后,不要生我的气,但你需要花更多的时间研究official documentation并包含Java样本。我向您展示了基本场景,它允许您在三个页面之间导航,而不是其他任何内容。最有可能的是,它不应该编写工作应用程序,但是描述它没有意义 - 正如它在文档中描述并在样本中演示。