GRAILS: метод генерации постоянных ссылок / слагов? - PullRequest
1 голос
/ 07 ноября 2011

Есть ли у кого-нибудь быстрый способ создания слагов и постоянных ссылок в Grails 1.3.7 / 2.0.0.RC1? Основное ограничение: этот метод должен работать с нелатинскими символами.

русская / болгарская кириллица, немецкий умлаут и т.д ...

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Grails 2.0.0.RC1

Из документов 2.0.0.RC1 :

API генерации ссылок

Теперь доступен класс LinkGenerator общего назначения, который можно использовать в любом месте в приложении Grails, а не только в контексте контроллера. Например, если вам нужно создать ссылки в служба или асинхронное фоновое задание за рамками запрос:

LinkGenerator grailsLinkGenerator

def generateLink() { grailsLinkGenerator.link(controller:"book", action:"list") }

Хотя это явно не указано, я предполагаю, что ссылка на grailsLinkGenerator получена путем внедрения зависимости

Граальс 1.3.7

Вы можете использовать теги createLink или resource для создания ссылок. Если вы генерируете постоянные ссылки, я предполагаю, что вы хотите, чтобы они были абсолютными URL. Если это так, вам потребуется использовать атрибут absolute или base при использовании этих тегов.

Если вы используете атрибут absolute, обязательно установите значение grails.serverURL в Config.groovy

Ссылка Постоянство

Приведенный выше текст описывает, как генерировать ссылки на ресурсы в приложении Grails, но ничего не говорит о том, как сделать эти ссылки постоянными. AFAIK, ссылка на ресурс всегда будет оставаться той же самой, пока вы не измените ничего, что используется в схеме сопоставления URL (как определено в UrlMappings.groovy)

По умолчанию схема преобразования URL использует

  • идентификатор ресурса
  • имя контроллера
  • название действия

Так что, если вы никогда не измените их для интересующих ссылок, вам должно быть хорошо.

0 голосов
/ 19 февраля 2013

Так же просто, как:

title.replaceAll("[\\W]+", "-")

Это делает это.

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