2015-12-23 8 views
2

Я пытаюсь заполнить поле текстового поля уже сохраненным значением.Текстовое поле Struts 2 преобразует апостроф в «' ;»

Теперь значение может содержать апостроф. Но текстовые поля преобразуют апостроф в "&#39 ;".

Например. sdsd'sds ==>sdsd&#39 ;sds

escape свойство для текстового поля не работает.

Что мне делать?

+0

Это не кодировка UTF-8, это кодирование объектов HTML: я что-то упустил? –

+0

Да. Я использую структуру ESAPI для проверки и канонизации данных, чтобы избежать XSS. Но этот апостроф был преобразован со специальными символами. – Aryan

+0

Эта проблема решена с использованием функции ESAPI.encoder(). DecodeForHTML(). – Aryan

ответ

0

Эта проблема решена с использованием функции ESAPI.encoder(). DecodeForHTML(). Значения, получаемые должным образом после того, как я декодировал значения перед использованием в s: текстовых полей.

Спасибо.

1

Вы получаете это из-за функции кодирования. Чтобы избежать этого и получить точно так же, как вы хотите, вы должны использовать , который доступен в пакете утилиты java.

0

Возможно, вы, вероятно, escaping это серверная сторона.

Нельзя.

Struts позаботится об этом.

Вам нужно только указать, когда противоположные (получение неэкранированного значения в <s:property /> тега), используя escapeHtml="false" свойства.


P.S: Есть персонажи, которым нужна особая угроза, такая как символ евро (евро), но это уже другая история.

+0

, но как это сделать с помощью struts2 s: textfield? – Aryan

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

  • Нет связанных вопросов^_^