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

fai*_*lai 1 java html5 playframework playframework-2.0

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

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

对不起,如果这是一个基本问题,但有点新玩框架.

对我的任何建议.

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

谢谢.

bie*_*ior 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());    
}
Run Code Online (Sandbox Code Playgroud)

对于每个操作,您还需要创建一个routein conf/routesto'translate'给定URL以执行正确的操作(首先是默认值):

GET   /             controllers.Application.canvas()
GET   /edit         controllers.Application.edit()
GET   /admin        controllers.Application.admin()
Run Code Online (Sandbox Code Playgroud)

最后在每个视图中添加该块,以便在每个页面上显示"主菜单".注意:使用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>
Run Code Online (Sandbox Code Playgroud)

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

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