Mar*_*ark 5 java model-view-controller controller view playframework
我在Java中使用Play Framework作为Web应用程序.
我想将一个帐户控制器放在"帐户"子包中,例如:
|- controllers
|- account
|- Account.java
Run Code Online (Sandbox Code Playgroud)
虽然我的观点组织如下:
|- views
|- Account
|- index.html
Run Code Online (Sandbox Code Playgroud)
Account.java文件包含:
package controllers.account;
import play.mvc.Controller;
public class Account extends Controller {
public static void index() {
render();
}
}
Run Code Online (Sandbox Code Playgroud)
我想要有以下行为:
当发出请求时http://localhost/account/{action},它被重定向到Account.java显示Account文件夹中视图的控制器.
有小费吗?
如果你确实创建了一个包结构,请注意有一些不明显的新语法:
反向查找控制器
将包名称放在'controllers'和'routes'之间:
controllers.account.routes.Account.index
Run Code Online (Sandbox Code Playgroud)
例如在一个视图中
<a href="@controllers.account.routes.Account.index" class="btn">Exit</a
Run Code Online (Sandbox Code Playgroud)
查看控制器中的引用
包名称跟在'views.html'之后:
return ok(views.html.account.index.render());
Run Code Online (Sandbox Code Playgroud)
您是否尝试过将视图放入与控制器结构相匹配的结构中?
|- views
|- account
|- Account
|- index.html
Run Code Online (Sandbox Code Playgroud)
除此之外,您始终可以将视图名称传递给 render() 调用:
render("Account/index.html");
Run Code Online (Sandbox Code Playgroud)
我个人会始终坚持游戏所提供的内置结构。否则,当您重新安排控制器结构时,您很容易陷入重构地狱......