2016-04-28 5 views
1

У меня есть странная проблемаplayframe работа не может найти правильный маршрут

это то, что я имею в routes файлы

GET  /path/list       controllers.path.getPaths() 
GET  /path/:id       controllers.path.get(id:Int) 

, когда я пытаюсь идти <domain>/path/list следующее сообщение об ошибке появляется:

Для запроса 'GET/path/list' [Невозможно проанализировать параметр id как Int: для строка ввода: "list"]

Я также попытался изменить порядок в routes файле

GET  /path/:id       controllers.path.get(id:Int) 
GET  /path/list       controllers.path.getPaths() 

Я все еще получаю ту же ошибку. поэтому мой вопрос:

  1. не соответствует маршруту, который соответствует первому пути, который соответствует?
  2. что еще может быть проблемой (например, java-коды)?
+0

Я угадываю ваши пути неоднозначны, вы должны иметь как '/ путь/list' и'/путь /: id' –

+0

Добавить го e полный файл маршрутов, пожалуйста. – marcospereira

ответ

3

Из кода, который вы предоставили, должно работать. Маршруты не являются двусмысленными, поскольку (из документации Play):

Многие маршруты могут соответствовать одному запросу. Если есть конфликт, используется первый маршрут (в порядке объявления).

если ваш routes заказа выглядит следующим образом:

GET  /path/list       controllers.path.getPaths() 
GET  /path/:id       controllers.path.get(id:Int) 

/path/list будет соответствовать, прежде чем пытаться извлечь/преобразовать параметр ID id:Int с пути и метания.

Если вы хотите играть в преобразовать входящий параметр в определенный тип Scala, вы можете добавить явный тип

Единственный способом это будет не работы, если вы попытались посетить маршрут что не соответствует list или не был Int:

For request 'GET /path/lists' [Cannot parse parameter id as Int: For input string: "lists"] 
+0

yes mate, u были правы, полагая, что он должен работать. Я создал новый проект и поместил в него все файлы, и он начал работать. Я рад, что это сработало, но я чуть не разбил монитор, чтобы тратить часы на что-то глупое ... – nafas

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