2016-01-10 2 views
0

Ok Так я учусь рамки игры, и я понимаю, концепция маршрутов, но Play для Java книги говорит мне создать класс продукты контроллера, как этот нижеPlayframework Routing

package controllers; 

import com.google.inject.Inject; 
import play.mvc.Controller; 
import play.mvc.Result; 

public class Products extends Controller { 

    public static Result list() { 
     return TODO; 
    } 

    public static Result showBlank(){ 
     return TODO; 
    } 

    public static Result show(Long ean) { 
     return TODO; 
    } 

    public static Result save(){ 
     return TODO; 
    } 
} 

А потом он говорит мне создать эти маршруты

# Routes 
# This file defines all application routes (Higher priority routes first) 
# ~~~~ 

# Home page 
GET /       controllers.Application.index() 

GET /products/ controllers.Products.list() 
GET /products/new controllers.Products.showBlank() 
GET /products/:ean controllers.Products.show(ean: Long) 
POST /products/ controllers.Products.save() 





# Map static resources from the /public folder to the /assets URL path 
GET  /assets/*file    controllers.Assets.versioned(path="/public", file: Asset) 

После просмотра, чтобы убедиться, что все было правильно в книге, это дает мне эту ошибку.

value list is not a member of controllers.Products 
In C:\Users\Rijos\PlayJavaBook\conf\routes:8 
5# Home page 
6GET /       controllers.Application.index() 
7 
8GET /products/ controllers.Products.list() 
9GET /products/new controllers.Products.showBlank() 
10GET /products/:ean controllers.Products.show(ean: Long) 
11POST /products/ controllers.Products.save() 
12 

Я знаю, что это наследство способ сделать это является основа игры из-за введения в зависимости сейчас, но даже после прочтения документации рамочных игр я не могу понять, как использовать его. Вот мой build.sbt файл

name := """play-java""" 

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava) 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs 
) 

// Play provides two styles of routers, one expects its actions to be injected, the 
// other, legacy style, accesses its actions statically. 
routesGenerator := InjectedRoutesGenerator 


fork in run := true 
+0

Я добавил файл сборки @Tomer – CLR45

ответ

2

Попробуйте добавить @Singlton над контроллером, и снимают статическое заявление от ваших методов.

+0

просто любопытно, что именно делает ссылка @Singlton? – CLR45

+0

Он убедится, что Guice создаст этот класс для вас, убедившись, что он будет синглом в вашей системе. @ CLR45 – Tomer

+0

, так что теперь он убирает ошибку и дает мне действие не найденную ошибку, когда он пытается найти маршрут к этому конкретному контроллеру и дает мне порядок путей, к которым он пытался получить доступ. @Tomer – CLR45