play framework - перенаправление с помощью строки запроса - PullRequest
0 голосов
/ 21 мая 2019

Я использую игровую платформу 2.7.x

У меня есть формула на моем controller.list() с представлением, назовем его «индекс». После того, как вы нажмете «отправить», он откроет controller.add(), где он будет содержать некоторые данные, а затем перенаправит обратно на controller.list(). Если в формуле произошла ошибка (требуемое поле было пустым), мне нужна строка запроса, отправленная на controller.add(), также перенаправленная на controller.list()

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

public Result list(Http.Request request)
{
  // .... stuff with foo, while foo is an Form<foo> Object
  // ... foo.bindFromRequest(request)
  ok(views.html.index.render(foo))
}

public Result add(Http.Request request)
{
  // not allowed to add request as an argument. only empty is allowed. 
  return Results.redirect(controllers.routes.Controller.list(request));
} 

Я хотел бы просто перенаправить объект Form, чтобы я мог обработать ошибку в controller.list() и не создавать дополнительное представление для controller.add(). Если я делаю все внутри controller.list(), то с этим кодом проблем нет, но мне нравится использовать вместо него метод controller.add().

Это вариант? кроме прохождения каждого querystring key and value вручную.

1 Ответ

0 голосов
/ 21 мая 2019

После того, как я вчера искал полдня, я нашел кое-что интересное сегодня.

  1. Вы не можете использовать параметр по умолчанию с =. Вы должны использовать необязательный параметр по умолчанию с ?= внутри routes !!!!!

  2. вы можете реализовать QueryStringBindable, так что немного проще связать строку запроса. Но вам все равно придется связывать их «вручную».

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