Как показать жирное сообщение с Seam 2 StatusMessages? - PullRequest
0 голосов
/ 05 февраля 2011

У меня есть компонент шва, куда я помещаю сообщение, используя стандартную аннотацию шва:

@In
private StatusMessages statusMessages;

public void myMethod()
{
  statusMessages.add("Welcome, #{user.getName()}, after confirmation you will be able to log in.");
}

и чем на странице xthml показать это сообщение:

<h:messages id="mensagensHome" globalOnly="true" styleClass="message"
            errorClass="errormsg" infoClass="infomsg" warnClass="warnmsg"
            rendered="#{showGlobalMessages != 'false'}" />

Это работаетотлично, но у меня есть требование, где имя должно быть жирным шрифтом.Чем я уже пытался разместить стандартные html-теги в своем сообщении, например:

 statusMessages.add("Welcome, <b> #{user.getName()} </b>, after confirmation you will be able to log in.");

Но чем он показывает теги на странице и не превращает название в жирный.

Я также пыталсяиспользование экранирующего символа Юникод для рендеринга тегов html, но опять-таки безуспешно.

Можно ли использовать стандартные теги html из кода, ожидающего форматирования сообщений в Seam?

Tx заранее.

1 Ответ

2 голосов
/ 11 февраля 2011

На самом деле вы не можете, в отличие от h: outputText h: у сообщений нет свойства escape, где вы могли бы сделать escape = "false".

В приведенной ниже ссылке вы можете найти пример того, как расширить h: messages, на самом деле это не совсем h: messages, который расширяется, но конечный результат тот же. Таким образом, вы можете установить escape = "false" в h: messages и заставить браузер анализировать html-теги.

http://balusc.blogspot.com/2010/07/using-html-in-jsf-messages.html

Будьте осторожны, если вы отображаете что-то, что пользователь вставил, потому что это подвержено внедрению html.

Примечание: ссылка не моя, но у меня сработала.

...