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

У меня есть 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

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


person Adrien Be    schedule 24.08.2011    source источник


Ответы (2)


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

<x:out select="$character/fstName" escapeXml="false"/>
person kschneid    schedule 24.08.2011

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

<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 если содержимое ожидаемых узлов содержит только числа.

person Adrien Be    schedule 26.08.2011