希望现在能更好地解释我的问题,我正在使用带有 java 的 play 2 框架来开发带有 html5 画布的草图系统。
前端将由 3 个不同的视图(页面)组成。一种用于渲染 html5 画布,一种用于渲染提交表单和显示标签。第三页作为管理员页面。想要创建这些视图并能够从一个呈现的视图或页面导航到另一个。
对不起,如果这是一个基本问题,但玩框架有点新。
对我的任何建议。
我知道使用了@helper 标签,但似乎不知道如何去做。
谢谢你。
希望现在能更好地解释我的问题,我正在使用带有 java 的 play 2 框架来开发带有 html5 画布的草图系统。
前端将由 3 个不同的视图(页面)组成。一种用于渲染 html5 画布,一种用于渲染提交表单和显示标签。第三页作为管理员页面。想要创建这些视图并能够从一个呈现的视图或页面导航到另一个。
对不起,如果这是一个基本问题,但玩框架有点新。
对我的任何建议。
我知道使用了@helper 标签,但似乎不知道如何去做。
谢谢你。
您不需要使用@helper
或者@tags
它们用于在其他模板中包含模板,只需使用普通渲染,首先创建文件:
所以然后在你的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
翻译”给定 URL 到正确操作(第一个是默认值):
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
每个操作都有单独的操作。
最后,不要生我的气,但你需要花更多的时间研究官方文档并包含Java示例。我向您展示了基本场景,它允许您在三个页面之间导航,仅此而已。很可能编写工作应用程序是不够的,但是描述它是没有意义的——因为它已经在文档中描述并在示例中演示。