Остановить Strut2 от автоматического преобразования не-ASCII символов в значение Unicode - PullRequest
1 голос
/ 01 сентября 2011

Предположим, name содержит не-ascii символы, когда я использую <s:property value="name" />, Struts автоматически преобразует эти символы в такие вещи, как &#20165;.

Это совершенно не нужно, поскольку я заявляю

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>`

и

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

и

struts.i18n.encoding=UTF-8

Это делает HTML-источник полностью нечитаемым на стороне клиента, в то же время значительно увеличивая размер страницы.

Я знаю, <s:property value="name" escapeHtml="false" /> может решить мою проблему. Но дело не в этом. Эта опция предназначена для использования, когда я вообще не хочу escapeHtml. Что я хочу, так это корректно экранировать Html, оставив только символы UTF-8! Я предполагаю, что установка свойства где-то должна решить проблему, но где? Я долго искал и не могу найти решение.

1 Ответ

3 голосов
/ 07 сентября 2011

Это что-то специфическое для тега <s:property/>.Вместо этого вы можете использовать <c:out/>, который будет экранировать символы XML без изменения символов Unicode.Попробуйте это:

<c:out value="${action.name}"/>

Это эквивалент JSTL <s:property value="name"/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...