2012-05-08 3 views
0

Я хочу, чтобы стиль текста был помечен тегом html <code>. Но стиль выполняется в классе на стороне сервера. Для т.д .:Текст стиля в HTML-теге

myValue.replaceAll(" " + textToStyle + " ", " <span style=\"color: orange;\"> " + textToStyle + "</span> "); 

этой линии идет как текст, который обернут в <code> теге. Текст отображается в JSF DataTable:

<h:column> 
    <code class="dt_row"> 
     #{myList.myValue} 
    </code> 
</h:column> 

<code> тег CSS класс:

.dt_row { 
    height: 8px; 
    margin: 3px 3px 3px 3px; 
    color: #000000; 
    font-size: 12px; 
} 

Проблема заключается в том, когда HTML отображается в браузере код отображается со всеми тегами. Я хочу, чтобы это не <span style=\"color: orange;\"> будет отображаться на странице, а текстовое значение оранжевого цвета.

Любые идеи, как достичь этого?

+0

К сожалению, я потерял тебя рядом с вашей последней строки. Вы хотите отключить экранирование? – adarshr

+0

Да, я хочу отключить экранирование. Напр. в моем вопросе, где class = "dt_row", атрибут класса синего цвета, но не для, например: class

ответ

4

Вместо

#{myList.myValue} 

вы можете попробовать

<h:outputText value="#{myList.myValue}" escape="false" /> 

Установки "побег" в ложную должны делать свою работу (в противном случае рамки избежит строки ...).

+0

Отлично, он работает! Спасибо :) –

2

Более элегантный способ будет использовать стиль-атрибут ч: outputText компонент и относящийся к фасоли для цвета т.д .:

<h:column> 
    <code class="dt_row"> 
     <h:outputText value="#{myList.myValue}" style="color: #{myList.color};" /> 
    </code> 
</h:column> 
+0

Фактически это решение намного более элегантно. И, вероятно, тот, который будет принят в производственной среде. – javatutorial

+0

Да, я согласен, если вы хотите выделить всю ценность, полученную из myList.myValue. Но в моем случае значение содержит более одного слова, но нужно выделить только один и конкретный. Поэтому предыдущие решения лучше для меня. –

Смежные вопросы