2010-11-02 2 views
0

Я работаю над приложением на Java. Мне нужно взять сформированные данные HTML из объекта и отобразить его в построенной таблице displaytag. Однако, похоже, по умолчанию displaytag подавляет форматирование с помощью escapeHTML содержимого, поэтому мой формат не будет отображаться должным образом.displaytag surpress HTML format

Как я использовал отформатированные данные, чтобы выделить соответствующие слова поиска в теге: <SPAN style='background-color:yellow;'></SPAN>. Информацией, отображаемой в результатах поиска, был буквальный синтаксис. вместо желтого фона слова.

Как я могу отменить HTML, чтобы он мог отображать выделенный фон?

Я готов использовать атрибут escapeXml. Однако приложение не удалось из-за недействительных атрибутов.

Спасибо,

ответ

0

Правильно ли я понимаю, что вы хотите, чтобы отменить его побег спасся HTML код? Вы можете сделать это примерно так:

public static String unescapeHtml(final String input){ 
    return input 
     .replace("&lt;", "<") 
     .replace("&gt;", ">") 
     .replace("&amp;", "&") 
     .replace("&quot;", "\""); 
} 
+0

Да, но я хочу сделать это в скрипте jsp вместо другого класса – user495230

+0

Ну, конечно, вы могли бы использовать этот код в скриптлет, но это было бы ужасно. IMHO JSP должен показывать только значения, поэтому я бы сделал это преобразование в классе контроллера. –

3

Это странно. По умолчанию displaytag documentation Исключение XML по умолчанию отключено. Вы уверены, что у вас нет escapeXml="true" где-нибудь в тегах?

Другая причина может заключаться в том, что вы используете тег JSTL <c:out> для отображения отдельных значений. Он по умолчанию запускает XML. Вы можете отключить его, добавив к тегу атрибут escapeXml="false".

+0

Я попытался escapeXML = false в инструкции c: out; но все равно никакой помощи. – user495230

+0

Как и все в Java, он чувствителен к регистру. Это 'escapeXml', а не' escapeXML'. – BalusC