Может ли Grails обрабатывать закодированные косые черты в URL? - PullRequest
3 голосов
/ 03 мая 2011

У меня есть приложение Grails, и я хочу добавить в URL параметр, содержащий информацию о размере шин. Информация о размере шин выглядит так: «225 / 60R18 104Y». Косая черта не является разделителем пути, и, к счастью, Grails достаточно умен, чтобы кодировать его в / foo / 225% 2F60R18 + 104Y. Однако на самом деле вызов этого URL не работает. Я получаю пустую страницу, без ошибок или чего-то еще. Превращение% 2F в косую черту дает мне страницу с ошибкой (ожидаемо), а пропуск ее возвращает меня к правильному контроллеру и действию, но с неверной информацией о размере.

Так в чем здесь проблема? Почему Grails не может справиться с этим, и есть ли способ это исправить?

Обновление: Похоже, виноваты здесь и Apache, и, возможно, Tomcat. Apache, вероятно, можно заставить вести себя, добавив AllowEncodedSlashes NoDecode, но теперь я должен выяснить, как заставить Tomcat принять это.

Ответы [ 2 ]

1 голос
/ 16 августа 2012

Добавление ** после того, как параметр в URL Mapping сработал для меня.Например, измените '/foo/$tire' на '/foo/$tire**'

0 голосов
/ 03 мая 2011

Если вы читаете размер шины как params.id, вы можете использовать кодеки Grails:

def tireSize = params.id.decodeURL()

С уважением, Deluan

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