2014-10-19 2 views
1

Я сам учу себя Играю в каркас и купил «Play for Java» от Manning. Я следую их указаниям, так как с момента публикации книги были некоторые обновления (естественно). Я получаю следующее сообщение об ошибке:Play Framework Действие не найдено:

Действия не найдены для запроса «GET/продукты»

контроллеров пакетов;

import play.mvc.Controller; 
import play.mvc.Result; 

public class Products extends Controller { 

    public static Result list(){ 
    return TODO; 
    } 

    public static Result newProduct(){ 
    return TODO; 
    } 

    public static Result details(String ean){ 
    return TODO; 
    } 

    public static Result save(){ 
    return TODO; 
    } 

} 

GET/controllers.Application.index()

GET/активы/* файл controllers.Assets.at (путь = "/ общественности", файл)

GET/продукты/Контроллеры .Products.list()

GET/продукты/новый controllers.Products.newProduct()

GET/продукты /: EAN controllers.Products.details (ЕАН: String)

POST/продукты/controllers.Products.save()

Я использовал HTML теги для этого, я надеюсь, что это правильный способ опубликовать здесь.

ответ

0

В прошлый раз, когда я использовал Play Framework, нужно было обрабатывать пути с завершающими косой чертой отдельно, потому что движок маршрутизации этой структуры делает.

Таким образом, вы либо добавить косую черту к URL, или вы переходите на следующую строку в вашем routes файле:

GET /products/ controllers.Products.list() 

к:

GET /products controllers.Products.list() 

Обход

I использовал следующий код для удаления конечной косой черты с URL-адреса:

Добавить эти строки в файл routes:

# Reroute URL with a trailing slash 
GET /*path/ controllers.Reroute.trailingSlash(path: String) 

Это соответствующий класс:

public class Reroute extends Controller { 
    public static Result trailingSlash(String path) { 
     /** 
     * Moved_Permantly is an HTTP code that indicates a moved ressource. The browser will 
     * cache the new address and redirect automatically if the user enters the old URL again. 
     */ 
     return movedPermanently("/" + path); 
    } 
} 

Если я правильно помню, содержит path переменного путь без слэша. Если вы используете этот код, проверьте, что каждый маршрут указан без конечной косой черты или этот маршрут больше не будет работать.

Смежные вопросы