2011-02-05 12 views
0

私は、標準的なシーム注釈使用してメッセージを入れSeamコンポーネントがあります。このメッセージを表示するSeam 2 StatusMessagesで大胆なメッセージを表示するには?

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

Seamのメッセージのフォーマットを楽しみにしているコードから、標準のhtmlタグを使用することはできますか?

Txです。

答えて

2

実際には、h:outputText h:と違い、escape = "false"を実行できるエスケーププロパティはありません。

以下のリンクでは、h:メッセージを拡張する方法のサンプルを見つけることができますが、実際には正確にはh:拡張されたメッセージではありませんが、最終結果は同じです。したがって、h:messagesにescape = "false"を設定し、ブラウザがhtmlタグを解析できるようにすることができます。

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

あなたはこれがあるため、挿入されたユーザーはHTMLインジェクションの傾向がある何かを表示する場合は注意してください。

注:リンクは私のものではありませんが、私にとってはうまくいきました。

+0

こんにちは、お返事ありがとうございます。私はそれを試してみて、それが私のために働いたかどうかを知らせます。 –

関連する問題