有没有办法在速度模板中对 URL 进行编码

发布于 2024-08-26 14:10:28 字数 264 浏览 5 评论 0原文

请原谅我的无知,但我是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

偷得浮生 2024-09-02 14:10:28

要在模板内对 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

感情废物 2024-09-02 14:10:28

我知道已经晚了。这是我今天解决这个问题的方法。在调用引擎的类中,您可以说

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

Now 在模板中您可以说

$esc.url($url)

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)

用心笑 2024-09-02 14:10:28

我只是不愿意在速度中使用 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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文