Граальс 3.3.9: Переслать копии параметров - PullRequest
0 голосов
/ 08 февраля 2019

Мы мигрируем из Grails 2.x в 3.x.При использовании функции forward я могу наблюдать несколько иное поведение:

class FooController {

    def index() {
        forward controller: 'foo', action : 'bar', params: params
    }

    def bar() {
        render(
                view: "/foo/foo"
        )
    }
}

При вызове http://localhost:8080/foo?test=1 и остановке в методе bar() я вижу, что params выглядит так:

params = {GrailsParameterMap@11597}  size = 4
 0 = {LinkedHashMap$Entry@11607} "test" -> 
  key = "test"
  value = {String[2]@11612} 
   0 = "1"
   1 = "1"
 1 = {LinkedHashMap$Entry@11608} "controller" -> "foo"
 2 = {LinkedHashMap$Entry@11609} "format" -> "null"
 3 = {LinkedHashMap$Entry@11610} "action" -> "bar"

Как видите, значение test сохраняется дважды как String[].Это поведение отличается от того, что было в Grails 2.5.6.Есть ли способ установить флаг для функции Grails forward, чтобы не передавать параметры в контроллер перенаправления?

1 Ответ

0 голосов
/ 10 февраля 2019

Я думаю, вам не нужно добавлять param.forward автоматически пересылает ваши параметры.Это необязательно.Если вы добавите его, он будет дублировать значения.Попробуйте только с:

forward controller: 'foo', action : 'bar'
...