播放框架控制器继承

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

【讨论】:

以上是关于播放框架控制器继承的主要内容,如果未能解决你的问题,请参考以下文章

播放框架:将控制器和路由打包为依赖关系的 jar

iOS开发拓展篇—音频处理(音乐播放器1)

很easy的js双向绑定框架:控制器继承

ThinkPHP框架 祖辈分的理解 儿子 FenyeController继承了父亲 FuController继承了祖辈 Controller的

在播放框架 1.2.5 中对路由不区分大小写

播放框架1.2.5 Websocket