Spring 2.5.6 / WPS 6.1: <в поле ввода превращается в <в отображаемом поле - PullRequest
1 голос
/ 21 января 2011

Мой друг попросил меня взглянуть на портлет, который он разрабатывал. Проблема, с которой он сталкивается, заключается в том, что когда он вводит значение типа

1 <2> 3

в поле ввода он получает

1 <2> 3

в отображенном поле String.

Хотя приличная часть его кода сомнительна, я не смог найти ни одного его экземпляра, используя .replace функцию / установку defaultHtmlEscape в значение true.

Я отладил его портлет, и он уже изменился, прежде чем он даже попадет в контроллер. Я поставил точку останова в диспетчерском порту Springs, и в процессе действия она уже преобразована.

> анализируется только до &lt; только в том случае, если ему предшествует <, поэтому, скорее всего, это проблема с выходом из-под контроля, поскольку она обрабатывается как HTML-тег, но я не смог найти никакого кода, влияющего на это.

Я не очень знаком с Spring 2.5.6 (я использую версию 3), но я не могу вспомнить ни одной подобной проблемы. Это может быть проблема с веб-порталом 6.1, но меня это удивит, так как я не могу найти подобных проблем. (Я собираюсь сделать завтра подобный сценарий).

Любой вклад будет оценен.

(весна 2.5.6-SEC02, WebSphere Portal 6.1 без последнего пакета функций)

1 Ответ

1 голос
/ 02 марта 2011

Экранирующий XML означает преобразование специальных символов, таких как &, >, < и т. Д., В коды символов, таких как &amp;, &gt;, &lt;, и т. Д.Если портлет использует URL-адрес, созданный библиотекой тегов портлета, который не содержит XML, тогда установите для этого параметра среды выполнения контейнера значение false.В спецификации Portlet 2.0 все URL-адреса, сгенерированные библиотекой тегов портлета, по умолчанию экранированы в XML.

у вашего друга должна быть некоторая функция экранирования в JSP его портлета, как показано ниже

 <portlet:resourceURL var="inputURL" id="userValues" escapeXml="false" />
...