Как избежать знака # в шаблоне Url в UrlMappings.groovy? - PullRequest
1 голос
/ 27 апреля 2011

Чтобы сохранить текущий набор URL-адресов в проекте, я должен иметь возможность использовать # (знак фунта) в URL-адресе. По какой-то причине знак фунта не работает нормально в этом проекте для UrlMappings.groovy.

Существует ли специальная escape-последовательность , которую необходимо использовать при размещении знаков # в UrlMappings.groovy ?

Мне не хватает какой-то причины, почему вообще нельзя использовать знаки фунта?

В следующем примере сопоставления URL-адресов браузер переходит на правильную страницу, но переменная pageName имеет значение null:

"/test/${urlName}#/overview"(controller:'test', action:'overview') {
    pageName = "overview"
}

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Я думал, что все после # в URL будет обрабатываться на стороне клиента браузеров, где он пытается найти и прокрутить до этого места.

Если вы выбросите запрос, содержащий символ фунта, вы даже увидите данные за #?

0 голосов
/ 27 апреля 2011

Я использовал сопоставление именованных URL, и он отлично работает, не нужно экранировать знак "#":

name test: "/#abc" (controller: 'test', action:'homepage')

РЕДАКТИРОВАТЬ: Мой ответ выше неправильный .На самом деле, это особый случай, когда домашняя страница является действием представления по умолчанию.

Netbrain верен, путь после «#» никогда не будет отправлен на сервер.Вместо этого я обнаружил, что можно использовать «% 23» вместо «#».Пожалуйста, посмотрите на здесь .

Например, вместо /test#/abc мы должны использовать /test%23/abc в качестве сопоставления URL (как на стороне клиента, так и на стороне сервера).

...