Как правильно обрабатывать URL с двумя одинаковыми параметрами с одинаковыми значениями? - PullRequest
0 голосов
/ 09 сентября 2010

Используя Grails 1.3.3, при запросе URL-ссылки:

/myapp/mycontroller/myaction?p1=v1&p2=v2&p1=v1

тогда введенное значение params в контроллер Grails будет содержать:

assert params.p1== ['v1','v1']

Было бы логично, что params.p1 равно 'v1', нет?

В любом случае, есть ли способ изменить это поведение?

Спасибо.

Ответы [ 3 ]

1 голос
/ 10 сентября 2010

Я согласен с @Andrew, но вы должны

p1.unique () [0] == 'v1'

0 голосов
/ 10 сентября 2010

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

0 голосов
/ 09 сентября 2010

Это ошибка в вашем приложении, что параметр в два раза? Большинство людей думают, что это должно означать, что оно имеет несколько значений, поэтому это не будет считаться странным поведением Вы всегда можете взять строку запроса и разобрать ее самостоятельно, если вам не нравится поведение по умолчанию.

...