播放框架控制器继承
Posted
技术标签:
【中文标题】播放框架控制器继承【英文标题】:Play framework Controller Inheritance 【发布时间】:2013-02-02 18:28:07 【问题描述】:我试图创建一个 Controller 继承来检查 Interceptions
是如何工作的。
默认控制器即Application.java
是这样的:
@Before
static void display()
System.out.println("Interception method \"Before\" invoked!!!");
public static void index()
System.out.println("Inside index!!!");
render();
我创建了一个名为App.java
的新控制器,它是这样的:
@With(Application.class)
public class App extends Controller
public static void welcome(String txtName)
render(txtName);
这里是 index.html 文件:
#extends 'main.html' /
#set title:'Home' /
<form action="@App.welcome()" method="get">
Enter your name: <input type="text" name="txtName">
<input type="submit" value="Submit">
</form>
这是Welcome.html
文件:
#extends 'main.html' /
#set title:'Home' /
Welcome $txtName?:'Guest'
我在路由文件中添加了这个条目:
GET /InterceptionDemo controllers.App.welcome
当我输入名称并单击index.html
中的按钮时,出现错误:
The template App/welcome.html does not exist.
我正在尝试使用App.java
控制器,但它不起作用。 welcome.html
文件存在于views/Application
文件夹下,index.html
也存在于此。
请让我知道如何使它工作...这只是一个垃圾应用程序,尝试它以开始使用 Play 框架继承。
谢谢。
【问题讨论】:
错误信息告诉你 Play 在哪里寻找 html 文件:在 [views/]App/welcome.html 【参考方案1】:试过你的例子,它工作得很好。将 Welcome.html 文件放在错误的目录中,并得到与您相同的错误。但随后创建了 views/App 目录并将其放置在那里,它就可以工作了。
【讨论】:
【参考方案2】:您想将welcome.html 从views/Application
移动到views/App
。
【讨论】:
以上是关于播放框架控制器继承的主要内容,如果未能解决你的问题,请参考以下文章
ThinkPHP框架 祖辈分的理解 儿子 FenyeController继承了父亲 FuController继承了祖辈 Controller的