HTML 表单未对 Velocity 中的搜索 URL 进行编码

标签 html forms urlencode velocity

我在搜索查询的 URL 编码方面遇到问题,我在 Velocity 中有这个问题模板。

<form method="GET" action="$req.contextPath/plugins/peopledirectory/search.action">
    <div class="greyboxfill" style="width: 420px">
        <input type="hidden" name="pageId" value="$pageId"/>
        <input type="text" name="search" id="search" size="30" value="$search"/>
        <input type="submit" name="searchbtn" value="Pesquisar">
    </div>
</form>

问题是,当我单击提交按钮时,搜索字符串未经过 URL 编码,如果我搜索 ME&A 之类的内容,它只会搜索 ME。 Velocity 中是否需要任何定义才能使其正常工作?

我在网络上看到表单 HTML 标记具有内部 URL 编码,为什么在这种情况下它不起作用?

最佳答案

最好的办法是使用 EscapeTool 显式转义字符串来自 VelocityTools .这是一个额外的库,您需要下载该库,然后将其包含在您的速度环境中。

URL 编码就像这样简单:

$escape.url($search)

关于HTML 表单未对 Velocity 中的搜索 URL 进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5390869/

相关文章:

html - 文本前/左和后/右一行

javascript - 如何在提交选择表单后显示 javascript 或 php SUCCESS 消息

php - 提交表单后如何在不选择要上传的新图像的情况下保留以前上传的图像(在db中)

html - 引导单选框如何与标签对齐

ajax - ajax 中没有使用 base64 编码

javascript - 仅在父点击而非子点击时触发事件

html - 导航栏中的链接不会将我带到下一页,而是消失了

html - 无法让我的网格以正确的方式显示?

java - 在具有 json 的 Post 上发送以 URI 编码的查询参数

javascript - URLEncode - 让它按照我想要的方式工作