请原谅我的无知,但我是Velocity的新手并试图修复别人的问题。我需要在速度模板中编码一个URL。我创建了一个url,作为查询字符串的一部分,我传入了用户创建的页面名称。此页面可以包含ëðû等特殊字符。该网址看起来像http://foo.com/page1/jz?page=SpecialChars_ëðû
答案 0 :(得分:4)
要在您可以使用的模板中对URL进行编码:
$esc.url($myUrl)
是EscapeTool的一部分。
注意: 除了速度jar之外,还需要使用velocity tools jar。 (如果你不拥有它,它不会抛出异常)。 此外,您可能需要检查配置,如here
所述答案 1 :(得分:1)
我知道已经晚了。这是我今天如何解决这个问题。在调用引擎的类中,你可以说
configure("esc",new EscapeTool());
context.put("url", "http://www.google.com");
现在在模板中你可以说
$ esc.url($ URL)
答案 2 :(得分:-1)
我只是不愿意在速度中使用EscapeTool来进行网址编码。 因此,这是我得到的解决方案 -
您可以使用 $ httpUtil.decodeURL($ siteURL) / $ httpUtil.encodeURL($ siteURL)进行Velocity中的URL编码
此外,您可以使用$htmlUtil.escapeAttribute()
来转义Velocity中的text / html内容。
$htmlUtil.escapeAttribute($refSiteName)