Java Play 2.3 Соответствует любому маршруту, который начинается с определенной строки

#java #routes #playframework-2.0

#java #маршруты #playframework-2.0

Вопрос:

есть ли способ сопоставить только часть маршрута. Мне нужно определение маршрута, которое должно соответствовать следующим маршрутам

/route

/route/part1 …

Часть после «/ route» является динамической и переменной. Должен быть сопоставлен каждый маршрут, который начинается с «/ route».

Моя попытка:

 GET     /route/<[a-z] >             controllers.Assets.at(path="/public/web", file="static.html")
 

Ошибка: действие не найдено для запроса ‘GET / route / home’

 GET     /route/*file                controllers.Assets.at(path="/public/web", file="static.html")
 

Ошибка: не разрешено указывать фиксированное или значение по умолчанию для параметра: ‘file’, извлеченного из пути

Ответ №1:

  1. Переименование и перемещение /public/web/static.html чтобы /app/views/staticFile.scala.html
  2. Измените маршрут на
     GET  /route/*path    controllers.Application.staticFile(path: String) 
  3. Добавьте метод в /app/controllers/Application.java
     public static Result staticFile(String path) {
        return ok(views.html.staticFile.render());
    }