有没有办法在速度模板中对 URL 进行编码
请原谅我的无知,但我是 Velocity 的新手,并试图解决别人的问题。我需要在速度模板内对 URL 进行编码。我创建一个 url,并作为查询字符串的一部分传递用户创建的页面名称。此页面可以包含特殊字符,例如 ëðû。该 URL 类似于 http://foo。 com/page1/jz?page=SpecialChars_ëðû
Excuse my ignorance but I am new to Velocity and trying to fix someone else's problem. I need to encode a URL inside the velocity template. I create a url and as part of the query string I pass in a page name a user created. This page can contain special characters like ëðû. The url would look like http://foo.com/page1/jz?page=SpecialChars_ëðû
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要在模板内对 URL 进行编码,您可以使用:
$esc.url($myUrl)
,它是 EscapeTool。
笔记:
这需要使用 velocity 工具 jar,此外速度罐。
(如果你没有它,它不会抛出异常)。
此外,您可能想检查您的配置,如此处所述
To encode URL inside a template you can use:
$esc.url($myUrl)
which is a part of EscapeTool.
Note:
This required to use velocity tools jar, in addition to the velocity jar.
(It will not throw exception if you will not have it).
Moreover, you might want to check you configuration, as describes here
我知道已经晚了。这是我今天解决这个问题的方法。在调用引擎的类中,您可以说
Now 在模板中您可以说
I know it is late. Here is how I solved this today. In the class calling the engine, you could say
Now in the template you could say
我只是不愿意在速度中使用 EscapeTool 进行 url 编码。
因此,这是我得到的解决方案 -
您可以使用 $httpUtil.decodeURL($siteURL) / $httpUtil.encodeURL($siteURL) 在 Velocity 中进行 URL 编码
另外,您可以使用
$htmlUtil.escapeAttribute()
在 Velocity 中转义 text/html 内容。$htmlUtil.escapeAttribute($refSiteName)
I was just not willing to use the EscapeTool in velocity for an url-encoding.
Hence, here's the solution i got -
you can use $httpUtil.decodeURL($siteURL) / $httpUtil.encodeURL($siteURL) for URL Encoding in Velocity
Also ,you can use
$htmlUtil.escapeAttribute()
for escaping text/html Content in Velocity.$htmlUtil.escapeAttribute($refSiteName)