0

我有一个接缝组件,我在其中使用标准接缝注释放置消息:

@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.");

但它会在页面上显示标签并且不会将名称变为粗体。

我也尝试过使用 unicode 转义字符来呈现 html 标签,但同样没有成功。

是否可以使用代码中的标准 html 标签来格式化 Seam 中的消息?

提前发送。

4

1 回答 1

2

实际上你不能,不像 h:outputText h:messages 没有转义属性,你可以在其中做 escape="false"。

在下面的链接中,您可以找到有关如何扩展 h:messages 的示例,实际上扩展的并不完全是 h:messages,但最终结果是相同的。因此,您可以在 h:messages 中设置 escape="false" 并让浏览器解析 html 标签。

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

如果您显示用户插入的内容,请小心,因为这很容易发生 html 注入。

注意:该链接不是我的,但它确实对我有用。

于 2011-02-11T20:08:37.703 回答