Есть ли способ кодировать URL в шаблоне скорости - PullRequest
5 голосов
/ 26 марта 2010

Извините за мое невежество, но я новичок в Velocity и пытаюсь решить чужую проблему. Мне нужно кодировать URL-адрес внутри шаблона скорости. Я создаю URL и как часть строки запроса я передаю имя страницы, созданной пользователем. Эта страница может содержать специальные символы, такие как ëðû. URL будет выглядеть как http://foo.com/page1/jz?page=SpecialChars_ëðû

Ответы [ 3 ]

4 голосов
/ 26 марта 2010

Для кодирования URL внутри шаблона вы можете использовать:

$esc.url($myUrl)

, который является частью EscapeTool .

Примечание: Для этого необходимо использовать инструмент скорости jar , в дополнение к скорости jar. (Не будет выбрасывать исключение, если у вас его не будет). Кроме того, вы можете проверить свою конфигурацию, как описано здесь

1 голос
/ 22 октября 2014

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

configure("esc",new EscapeTool());
context.put("url", "http://www.google.com");

Теперь в шаблоне можно сказать

$ esc.url ($ URL)

0 голосов
/ 28 апреля 2015

Я просто не хотел использовать EscapeTool по скорости для кодирования URL. Следовательно, вот решение, которое я получил -

Вы можете использовать $ httpUtil.decodeURL ($ siteURL) / $ httpUtil.encodeURL ($ siteURL) для кодирования URL в скорости

Кроме того, вы можете использовать $htmlUtil.escapeAttribute() для экранирования содержимого text / html в Velocity.

$htmlUtil.escapeAttribute($refSiteName)

...