2017-02-06 4 views
0

я следующее отображение в моем UrlMappings.groovy:urlmappings изменения - Grails 2 до 3 обновления

"/$controller/$action?/$id?/$id2?/$id3?" {constraints {}}

Учитывая URL запроса xcontroller/xaction/xid1//xid3 (обратите внимание //)

Grails 2.x будет производить значения id и id3, но не id2. это то, чего я ожидал.

В графе 3.2.5 этот url создает только значения id1 и id2 (xid3 становится id2). Похоже, что // игнорируется.

Есть ли у других эта проблема? Это ошибка или желаемое изменение?

+0

Проверьте раздел «Динамически разрешенные переменные» в http://docs.grails.org/3.1.1/guide/single.html#urlmappings. Это может помочь установить значение по умолчанию для отсутствующих токенов ... – Philippe

ответ

1

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

http://host/foo/bar 
http://host/foo//bar 
http://host/foo/./bar 

RFC3986 обсуждает синтаксис URI.

Вы можете использовать фиктивное значение, например 0, в качестве заполнителя для «недостающих» компонентов.

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

  • Нет связанных вопросов^_^