Bezdepbonusu7Программирование: статьи и ответы

Вопрос

JSP c:set для значения, возвращаемого x:out, отображает код специальных символов

Автор вопроса: Adrien BeОтветов: 2

У меня есть xml-документ. При разборе этого документа я хочу сделать

<c:set var="fullName">
<x:out select="$character/fstName"/>.<x:out select="$character/famName"/>
</c:set>

а потом позже

<c:out value="${fullName}"/>

Это отображает HTML-код специальных символов вместо самого символа (т.е. апостроф становится &#039)

Я прочитал аналогичную проблему на этой странице "how-can- i-escape-special-html-characters-in-jsp", но это похоже на решение для c:out только. Я попробовал это в моем случае, и это не работает для x: out

заранее спасибо

xml-parsingjspjstl

Ответы

Ответ 1 · рейтинг 3 · kschneid

По умолчанию <x:out> преобразует определенные символы в связанные с ними коды объектов. Если вы не хотите, чтобы это произошло, попробуйте что-то вроде:

<x:out select="$character/fstName" escapeXml="false"/>

Ответ 2 · рейтинг 1 · Adrien Be

Итак, это окончательное решение:

<c:set var="fullName">
<x:out select="$character/fstName" escapeXml="false"/>.<x:out select="$character/famName" escapeXml="false"/>
</c:set>

<c:out value="${fullName}"/>

Я предполагаю, что escapeXml="false" нужно использовать постоянно, если вы вкладываете свой x:out в c:set если содержимое ожидаемых узлов содержит только числа.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы