Ale*_*nar 6 java playframework
我尝试使用Play Framework 2.4和Mac中的JDK8启动应用程序,当我使用./activator下载基础时新建项目播放-java模板代码包含下一个:
项目/应用/ controlles/Application.java
package controllers;
import play.*;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public Result index() {
return ok(index.render("Your new application is ready."));
}
}
Run Code Online (Sandbox Code Playgroud)
但当我更换这部分时:
public static Result index() {...
Run Code Online (Sandbox Code Playgroud)
将"static"添加到index()
我收到这个错误
Compilation error
value index is not a member of controllers.Application
.../conf/routes:6
4 # ~~~~
5 # Home page
6 GET / controllers.Application.index()
Run Code Online (Sandbox Code Playgroud)
我不知道为什么因为在所有的例子中都使用了static for Result
Ste*_*ner 10
您可能仍在使用旧式路由.
从文档:
注入路由生成器默认情况下,Play将生成静态路由器,该路由器假定所有操作都是静态方法.通过配置Play以使用注入的路由生成器,您可以获得Play以生成路由器,该路由器将声明其路由到的所有控制器作为依赖项,从而允许您的控制器自己依赖注入.
我们建议始终使用注入路由生成器,静态路由生成器主要用作辅助迁移的工具,以便现有项目不必一次使所有控制器都不是静态的.
要启用注入的路由生成器,请将以下内容添加到build.sbt中的构建设置:
routesGenerator:= InjectedRoutesGenerator
或者,你可以坚持使用静态路由器(但如果你正在创建一个新的应用程序,为什么会这样?)并在动作参考前加上@
GET /some/path @controllers.Application.index()
Run Code Online (Sandbox Code Playgroud)
在Play 2.5中,默认使用注入路线。如果仍然要使用静态路由,请将其添加到build.sbt中:
routesGenerator := StaticRoutesGenerator
Run Code Online (Sandbox Code Playgroud)
该@controllers.…符号对我不起作用。
此处有更多详细信息:https : //playframework.com/documentation/2.5.x/Migration25#Routes-Generated-with-InjectedRoutesGenerator
| 归档时间: |
|
| 查看次数: |
8044 次 |
| 最近记录: |