0

標準の seam アノテーションを使用してメッセージを配置する seam コンポーネントがあります。

@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 タグをレンダリングしようとしましたが、成功しませんでした。

Seam でメッセージをフォーマットするために、コードから標準の html タグを使用することは可能ですか?

事前に送信します。

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 に答える