5

请原谅我的无知,但我是 Velocity 的新手,并试图解决别人的问题。我需要在速度模板中编码一个 URL。我创建了一个 url,作为查询字符串的一部分,我传入了一个用户创建的页面名称。此页面可以包含特殊字符,例如 ëðû。该网址看起来像http://foo.com/page1/jz?page=SpecialChars_ëðû

4

3 回答 3

4

要在模板中编码 URL,您可以使用:

$esc.url($myUrl)

这是EscapeTool的一部分。

注意:这需要使用velocity tools jar,除了velocity jar。(如果你没有它,它不会抛出异常)。此外,您可能想检查您的配置,如此处所述

于 2010-03-26T06:20:22.477 回答
1

I know it is late. Here is how I solved this today. In the class calling the engine, you could say

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

Now in the template you could say

$esc.url($url)

于 2014-10-22T13:51:14.487 回答
-1

我只是不愿意在速度中使用 EscapeTool 进行 url 编码。因此,这是我得到的解决方案 -

您可以使用$httpUtil.decodeURL($siteURL) / $httpUtil.encodeURL($siteURL)在 Velocity 中进行 URL 编码

此外,您可以$htmlUtil.escapeAttribute()用于在 Velocity 中转义 text/html 内容。

$htmlUtil.escapeAttribute($refSiteName)

于 2015-04-28T10:19:02.100 回答