По умолчанию, каждый JSF FacesMessage
представлен в одной строке. Я хотел бы добавить разрыв строки HTML <br />
к самому сообщению, так, чтобы сообщение показали аккуратно. Я попробовал его как ниже
message = new FacesMessage("test<br/>test");
Однако этого оставил JSF и показывают буквенным текстом. Как я могу добавить HTML-код к a FacesMessage
без него оставляемый?
Теоретически вам нужен атрибут escape
для компонента h: messages
, как у h: outputText
. Вы не единственный, кто этого хочет, это требуется раньше, чем часто, но, по словам ребят из JSF, это WONTFIX.
У вас есть несколько вариантов:
Используйте \ n
вместо
и примените CSS соответственно (самый простой).
#messages td {white-space: pre; }
Создайте настраиваемое средство визуализации , которое расширяет MessageRenderer
(немного сложнее, но удобно, если вы хотите охватить больше HTML, чем только перенос строки).
Соберите сообщения самостоятельно в некотором List
в bean-компоненте и отобразите их, используя
, или когда вы уже используете Facelets вместо JSP, используя
. Таким образом, вы можете использовать
для отображения отдельных сообщений.
Или, когда вы уже используете JSF 2.0, просто переберите FacesContext # getMessageList ()
самостоятельно. Каждый элемент возвращает вам FacesMessage
, который, в свою очередь, предлагает несколько получателей. Затем вы можете отобразить сводку в
.
-
ui: повторить>
Или, когда вы используете служебную библиотеку JSF OmniFaces , используйте ее компонент
, который поддерживает escape
атрибут.
Используйте класс CSS для форматирования сообщения, как BalusC сказал вам в предыдущем вопросе: