Форма HTML не кодирует URL поиска в Velocity - PullRequest
2 голосов
/ 22 марта 2011

У меня проблема с кодировкой 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-кодировку, почему он не работает в этом случае?

1 Ответ

1 голос
/ 11 апреля 2011

Лучше всего явно экранировать строку, используя EscapeTool из VelocityTools . Это дополнительная библиотека, которую вам нужно загрузить, а затем включить в контекст скорости.

Кодирование URL тогда так же просто, как:

$escape.url($search)
...