ошибка маршрутизации игрового фреймворка - PullRequest
1 голос
/ 10 марта 2011

Очевидно, я не понимаю маршрутизацию Play так, как я думал.Я пытался получить URL для формы, выглядящей так, как я хочу, и я получаю StackOverflowError от Groups.view вызова render, вызванного бесконечной рекурсией в play.data.binding.Unbinder.unBind(Unbinder.java:62).

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

GET  /groups/{<[\d\w]+=.*>rdn}      ldapauth.Groups.view
POST /groups/{<[\d\w]+=.*>rdn}  ldapauth.Groups.save

Groups.view работает нормально, пока я не добавлю ссылку на Groups.save:

#{form @ldapauth.Groups.save(rdn: 'cn=test')}`
#{/form}

на странице просмотра, затем я получу ошибку выше,Кто-нибудь знает, в чем здесь проблема?

1 Ответ

1 голос
/ 11 марта 2011

UnBind - это класс, который преобразует параметры в соответствующий объект Java / Scala.

Я полагаю, что ваша ошибка связана с добавлением rdn: 'cn = test' в метод.Определите скрытый ввод с именем rdn и значением, которое вы хотите, и позвольте Play выполнить связывание.

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

POST /groups/save/{<[\d\w]+=.*>rdn}  ldapauth.Groups.save

, и в последней строке сохранения вы вызываете

view(<params>)

, чтобы вы были перенаправлены обратно в окно получения(или другой метод, если вы хотите пойти куда-нибудь еще).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...