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


person LFCPirex    schedule 22.03.2011    source источник
comment
Не похоже, что это имеет какое-то отношение к скорости. Видите ли вы закодированные данные в поле URL-адреса браузера? Я вижу, что ваша форма не на английском языке, возможно, вы вводите символ & в другой кодировке, поэтому он не может его распознать?   -  person serg    schedule 22.03.2011


Ответы (1)


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

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

$escape.url($search)
person Edd    schedule 11.04.2011