2016-01-12 1 views
0

Я работаю над Java-приложением на основе struts-framework. У меня есть несколько классов Action, которые расширяют класс «Действие». Отправка запроса POST по HTML-формуле работает нормально. Я использую Javascript/Ajax для создания запроса HTTP, как:HTTP-запрос, отправленный в действие Struts, настройки кодировки (Java)

goMyAlertsCommandQueue.addAjaxCall({ 
    type : "POST", 
    url : './showDetails.do', 
    dataType : "html", 
    data : ({ 
     Action : 'saveAlert', 
     Title : title} ...... 

В методе выполнения в моем классе действий, я могу получить доступ к атрибут «название». Моя проблема в том, что если у меня есть поле ввода, вход которого я хочу отправить в класс действия, содержит специальные символы, такие как «&», преобразуются в &. Это происходит, прежде чем что-либо в действии метод выполняется.

Я попытался добавить "contentType:" application/x-www-form-urlencoded; charset = utf-8 ", " в мой AjaxCall, но он не помог.

ответ

0

Я думаю, что метод StringEscapeUtils.unescapeHtml4() библиотеки Jakarta Commons Lang - это то, что вы ищете.

Вы должны использовать этот метод в своем классе Action Struts.

Например, строка:

"<Français> Happy & Sad" 

станет

"<Français> Happy & Sad" 
+0

спасибо, я попробую его. Но было бы интересно узнать, в чем причина этого. –

+0

Не могли бы вы разместить свой полный вызов ajax с введением им входного значения? –

+0

Эй, спасибо за ваш ответ. Прежде чем вызов ajax вызывается, заголовок имеет следующее значение: var title = jQuery ("# ​​AlertDetailsTitle"). Val(); // title = "Detractor DE | CT, MI | IMCP &" Непосредственно перед тем, как выполняется метод execute в классе действия, это значение: Detractor DE | CT, MI | IMCP & amp; А после StringEscapeUtils.unescapeHtml значение преобразуется в: Detractor DE | CT, MI | IMCP & –

Смежные вопросы